|
7736
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7661
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774338040
|
1774338040
|
0
|
1774338040
|
1774338040
|
|
|
0
|
Edit
Delete
|
|
7737
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7662
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774338340
|
1774338340
|
0
|
1774338340
|
1774338340
|
|
|
0
|
Edit
Delete
|
|
7738
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7663
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774338640
|
1774338640
|
0
|
1774338640
|
1774338640
|
|
|
0
|
Edit
Delete
|
|
7739
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7664
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774338940
|
1774338940
|
0
|
1774338940
|
1774338940
|
|
|
0
|
Edit
Delete
|
|
7740
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7665
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774339240
|
1774339240
|
0
|
1774339240
|
1774339240
|
|
|
0
|
Edit
Delete
|
|
7741
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7666
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774339540
|
1774339540
|
0
|
1774339540
|
1774339540
|
|
|
0
|
Edit
Delete
|
|
7742
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7667
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774339840
|
1774339840
|
0
|
1774339840
|
1774339840
|
|
|
0
|
Edit
Delete
|
|
7743
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7668
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774340140
|
1774340140
|
0
|
1774340140
|
1774340140
|
|
|
0
|
Edit
Delete
|
|
7744
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7669
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774340440
|
1774340440
|
0
|
1774340440
|
1774340440
|
|
|
0
|
Edit
Delete
|
|
7745
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7670
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774340740
|
1774340740
|
0
|
1774340740
|
1774340740
|
|
|
0
|
Edit
Delete
|
|
7746
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7671
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774341040
|
1774341040
|
0
|
1774341040
|
1774341040
|
|
|
0
|
Edit
Delete
|
|
7747
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7672
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774341340
|
1774341340
|
0
|
1774341340
|
1774341340
|
|
|
0
|
Edit
Delete
|
|
7748
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7673
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774341640
|
1774341640
|
0
|
1774341640
|
1774341640
|
|
|
0
|
Edit
Delete
|
|
7749
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7674
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774341940
|
1774341940
|
0
|
1774341940
|
1774341940
|
|
|
0
|
Edit
Delete
|
|
7750
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7675
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774342240
|
1774342240
|
0
|
1774342240
|
1774342240
|
|
|
0
|
Edit
Delete
|
|
7751
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7676
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774342540
|
1774342540
|
0
|
1774342540
|
1774342540
|
|
|
0
|
Edit
Delete
|
|
7752
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7677
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774342840
|
1774342840
|
0
|
1774342840
|
1774342840
|
|
|
0
|
Edit
Delete
|
|
7753
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7678
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774343140
|
1774343140
|
0
|
1774343140
|
1774343140
|
|
|
0
|
Edit
Delete
|
|
7754
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7679
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774343440
|
1774343440
|
0
|
1774343440
|
1774343440
|
|
|
0
|
Edit
Delete
|
|
7755
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7680
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774343740
|
1774343740
|
0
|
1774343740
|
1774343740
|
|
|
0
|
Edit
Delete
|
|
7756
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7681
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774344040
|
1774344040
|
0
|
1774344040
|
1774344040
|
|
|
0
|
Edit
Delete
|
|
7757
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7682
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774344340
|
1774344340
|
0
|
1774344340
|
1774344340
|
|
|
0
|
Edit
Delete
|
|
7758
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7683
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774344640
|
1774344640
|
0
|
1774344640
|
1774344640
|
|
|
0
|
Edit
Delete
|
|
7759
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7684
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774344940
|
1774344940
|
0
|
1774344940
|
1774344940
|
|
|
0
|
Edit
Delete
|
|
7760
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7685
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774345240
|
1774345240
|
0
|
1774345240
|
1774345240
|
|
|
0
|
Edit
Delete
|
|
7761
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7686
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774345540
|
1774345540
|
0
|
1774345540
|
1774345540
|
|
|
0
|
Edit
Delete
|
|
7762
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7687
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774345840
|
1774345840
|
0
|
1774345840
|
1774345840
|
|
|
0
|
Edit
Delete
|
|
7763
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7688
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774346124
|
1774346124
|
0
|
1774346124
|
1774346124
|
|
|
0
|
Edit
Delete
|
|
7764
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7689
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774346424
|
1774346424
|
0
|
1774346424
|
1774346424
|
|
|
0
|
Edit
Delete
|
|
32
|
t2228
|
2
|
2
|
hello-world.yaml
|
31
|
1
|
0
|
refs/heads/main
|
5b02704031563f678f5ef2cb09446cc806b2d32b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db8eda4b4696ee119fdb6d2f03804ccdf33ebcbb","after":"5b02704031563f678f5ef2cb09446cc806b2d32b","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/db8eda4b4696ee119fdb6d2f03804ccdf33ebcbb...5b02704031563f678f5ef2cb09446cc806b2d32b","commits":[{"id":"5b02704031563f678f5ef2cb09446cc806b2d32b","message":"t2228\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/5b02704031563f678f5ef2cb09446cc806b2d32b","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T17:26:00+08:00","added":[],"removed":[],"modified":["pc/kg.php"]}],"total_commits":0,"head_commit":{"id":"5b02704031563f678f5ef2cb09446cc806b2d32b","message":"t2228\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/5b02704031563f678f5ef2cb09446cc806b2d32b","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T17:26:00+08:00","added":[],"removed":[],"modified":["pc/kg.php"]},"repository":{"id":2,"owner":{"id":2,"login":"juhai","login_name":"","source_id":0,"full_name":"","email":"","avatar_url":"https://gitea.g-hi.com/avatars/8edeea9a6ada1d3d48db9231e9328f15","html_url":"https://gitea.g-hi.com/juhai","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:37:00+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"private","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"juhai"},"name":"testpc","full_name":"juhai/testpc","description":"pc测试环境","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":17743,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc/languages","html_url":"https://gitea.g-hi.com/juhai/testpc","url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc","link":"","ssh_url":"git@gitea.g-hi.com:juhai/testpc.git","clone_url":"https://gitea.g-hi.com/juhai/testpc.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-06T13:52:11+08:00","updated_at":"2026-02-12T17:08:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":true,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"zhangjunnan"},"sender":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"zhangjunnan"}}...
|
push
|
2
|
3
|
1770888366
|
1770888372
|
0
|
1770888366
|
1770888372
|
NULL
|
|
0
|
Edit
Delete
|
|
7666
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
e2e-tests.yml
|
7591
|
5
|
0
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
20
|
1774321432
|
1774321586
|
0
|
1774321430
|
1774321631
|
|
|
0
|
Edit
Delete
|
|
7667
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
test-pipeline.yml
|
7592
|
5
|
0
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
68
|
1774321586
|
1774321621
|
0
|
1774321431
|
1774321882
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
7668
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7593
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774321622
|
1774321623
|
0
|
1774321541
|
1774321623
|
|
|
0
|
Edit
Delete
|
|
7673
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7598
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774321883
|
1774321884
|
0
|
1774321840
|
1774321884
|
|
|
0
|
Edit
Delete
|
|
7675
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7600
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774322140
|
1774322140
|
0
|
1774322140
|
1774322140
|
|
|
0
|
Edit
Delete
|
|
7676
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7601
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774322440
|
1774322440
|
0
|
1774322440
|
1774322440
|
|
|
0
|
Edit
Delete
|
|
7677
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7602
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774322740
|
1774322740
|
0
|
1774322740
|
1774322740
|
|
|
0
|
Edit
Delete
|
|
7678
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7603
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774323040
|
1774323040
|
0
|
1774323040
|
1774323040
|
|
|
0
|
Edit
Delete
|
|
7679
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7604
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774323340
|
1774323340
|
0
|
1774323340
|
1774323340
|
|
|
0
|
Edit
Delete
|
|
7680
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7605
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774323640
|
1774323640
|
0
|
1774323640
|
1774323640
|
|
|
0
|
Edit
Delete
|
|
7681
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7606
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774323940
|
1774323940
|
0
|
1774323940
|
1774323940
|
|
|
0
|
Edit
Delete
|
|
7682
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7607
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774324240
|
1774324240
|
0
|
1774324240
|
1774324240
|
|
|
0
|
Edit
Delete
|
|
7683
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7608
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774324540
|
1774324540
|
0
|
1774324540
|
1774324540
|
|
|
0
|
Edit
Delete
|
|
7684
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7609
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1958148,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T10:14:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774324840
|
1774324840
|
0
|
1774324840
|
1774324840
|
|
|
0
|
Edit
Delete
|
|
6116
|
1111
|
2
|
2
|
hello-world.yaml
|
39
|
1
|
0
|
refs/heads/main
|
14b0bd31fd78217bc8d4e3e9675385deef19fcf2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dd0c28fc64f996117a47cf5b8ed9e7ae228630ef","after":"14b0bd31fd78217bc8d4e3e9675385deef19fcf2","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/dd0c28fc64f996117a47cf5b8ed9e7ae228630ef...14b0bd31fd78217bc8d4e3e9675385deef19fcf2","commits":[{"id":"14b0bd31fd78217bc8d4e3e9675385deef19fcf2","message":"1111\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/14b0bd31fd78217bc8d4e3e9675385deef19fcf2","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-03-16T20:17:45+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml","pc/index.php"]}],"total_commits":0,"head_commit":{"id":"14b0bd31fd78217bc8d4e3e9675385deef19fcf2","message":"1111\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/14b0bd31fd78217bc8d4e3e9675385deef19fcf2","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-03-16T20:17:45+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml","pc/index.php"]},"repository":{"id":2,"owner":{"id":2,"login":"juhai","login_name":"","source_id":0,"full_name":"","email":"","avatar_url":"https://gitea.g-hi.com/avatars/8edeea9a6ada1d3d48db9231e9328f15","html_url":"https://gitea.g-hi.com/juhai","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:37:00+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"private","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"juhai"},"name":"testpc","full_name":"juhai/testpc","description":"pc测试环境","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":17768,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc/languages","html_url":"https://gitea.g-hi.com/juhai/testpc","url":"https://gitea.g-hi.com/api/v1/repos/juhai/testpc","link":"","ssh_url":"git@gitea.g-hi.com:juhai/testpc.git","clone_url":"https://gitea.g-hi.com/juhai/testpc.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-06T13:52:11+08:00","updated_at":"2026-02-12T18:07:02+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":true,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"zhangjunnan"},"sender":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"zhangjunnan"}}...
|
push
|
1
|
3
|
1773663554
|
1773663557
|
0
|
1773663552
|
1773663557
|
NULL
|
|
0
|
Edit
Delete
|
|
7289
|
chore: comprehensive governance updates and test a chore: comprehensive governance updates and test artifacts...
|
6
|
5
|
ci.yml
|
7215
|
5
|
0
|
refs/heads/main
|
339ea969ec2633756fb1a155d47723d0f61396a4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","after":"339ea969ec2633756fb1a155d47723d0f61396a4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/df7b6f46170cb46db4771dd1e07991b0b13d90a0...339ea969ec2633756fb1a155d47723d0f61396a4","commits":[{"id":"339ea969ec2633756fb1a155d47723d0f61396a4","message":"chore: comprehensive governance updates and test artifacts\n\n- Add Prisma schema modularization and migration scripts\n- Add service test coverage across all modules (AI, alliance, community, marketing, etc.)\n- Add shared services (cache, custom-fields, dynamic-state-machine, encryption, etc.)\n- Add infrastructure configs (ClickHouse, Debezium, Tempo)\n- Add user manual and technical documentation with screenshots\n- Add router module organization for all centers\n- Add store/test coverage and Playwright artifacts\n- Update CI workflow, environment configs, and dependencies\n- Fix security issues in auth, kafka, and validation layers\n- Fix permission naming tests to expect kebab-case output\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/339ea969ec2633756fb1a155d47723d0f61396a4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T09:22:37+08:00","added":["backend/prisma/migrations/manual/create_dynamic_sm_and_custom_fields.sql","backend/prisma/migrations/manual/create_knowledge_embeddings.sql","backend/prisma/migrations/materialized_views.sql","backend/prisma/schema/_base.prisma","backend/prisma/schema/_enums.prisma","backend/prisma/schema/ai.prisma","backend/prisma/schema/alliance.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/customers.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/geo.prisma","backend/prisma/schema/hr.prisma","backend/prisma/schema/im.prisma","backend/prisma/schema/knowledge.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/livestream.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/products.prisma","backend/prisma/schema/project.prisma","backend/prisma/schema/renewals.prisma","backend/prisma/schema/sales.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/social.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/config/__tests__/kafka-router.test.ts","backend/src/config/tracing.ts","backend/src/modules/ai-copilot/ai-copilot.service.test.ts","backend/src/modules/alliance-analytics/alliance-analytics.service.test.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.test.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-products/alliance-product.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.test.ts","backend/src/modules/alliance-referrals/alliance-referral.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/approval-templates/approval-template.service.test.ts","backend/src/modules/campaign-targets/campaign-target.service.test.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.test.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.test.ts","backend/src/modules/community-activities/community-activity.service.test.ts","backend/src/modules/community-analytics/community-analytics.service.test.ts","backend/src/modules/community-fission/community-fission.service.test.ts","backend/src/modules/community-groups/community-group.service.test.ts","backend/src/modules/community-members/community-member.service.test.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.test.ts","backend/src/modules/content-categories/content-category.service.test.ts","backend/src/modules/content-copyright/content-copyright.service.test.ts","backend/src/modules/content-creation/content-creation.service.test.ts","backend/src/modules/content-distribution/content-distribution.service.test.ts","backend/src/modules/content-library/content-library.service.test.ts","backend/src/modules/content-review/content-review.service.test.ts","backend/src/modules/content-templates/content-template.service.test.ts","backend/src/modules/contract-templates/contract-template.service.test.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.test.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.test.ts","backend/src/modules/customer-journey/customer-journey.service.test.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.test.ts","backend/src/modules/customer-ltv/customer-ltv.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.test.ts","backend/src/modules/dimension-transform/dimension-transform.service.test.ts","backend/src/modules/disbursements/disbursement-record.service.test.ts","backend/src/modules/events/event.service.test.ts","backend/src/modules/finance/finance-credits.service.test.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-refunds.service.test.ts","backend/src/modules/finance/finance.service.test.ts","backend/src/modules/geo-analytics/geo-analytics.service.test.ts","backend/src/modules/geo-fences/geo-fences.service.test.ts","backend/src/modules/geo-keywords/geo-keyword.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.test.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.test.ts","backend/src/modules/hr/positions/positions.service.test.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.test.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.test.ts","backend/src/modules/livestream-products/livestream-product.service.test.ts","backend/src/modules/livestream-rooms/livestream-room.service.test.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.test.ts","backend/src/modules/livestream-scripts/livestream-script.service.test.ts","backend/src/modules/marketing-calendar/marketing-calendar.service.test.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.test.ts","backend/src/modules/marketing-matrix/matrix.service.test.ts","backend/src/modules/mdm/mdm.service.test.ts","backend/src/modules/menus/menu.service.test.ts","backend/src/modules/multi-touch-attribution/multi-touch-attribution.service.test.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.test.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.test.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.test.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.test.ts","backend/src/modules/reports/report.service.test.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.test.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.test.ts","backend/src/modules/self-operated-store/self-operated-store.service.test.ts","backend/src/modules/social-accounts/social-account.service.test.ts","backend/src/modules/social-auto-replies/social-auto-reply.service.test.ts","backend/src/modules/social-posts/social-post.service.test.ts","backend/src/modules/store-agency/store-agency.service.test.ts","backend/src/modules/suppliers/supplier.service.test.ts","backend/src/modules/video-calls/video-call.service.test.ts","backend/src/shared/middleware/__tests__/security-fixes.test.ts","backend/src/shared/middleware/field-encryption.middleware.ts","backend/src/shared/middleware/rate-limit.middleware.ts","backend/src/shared/services/__tests__/audit-log.service.test.ts","backend/src/shared/services/__tests__/custom-fields.service.test.ts","backend/src/shared/services/__tests__/dynamic-state-machine.service.test.ts","backend/src/shared/services/__tests__/list-cache.service.test.ts","backend/src/shared/services/__tests__/llm-gateway.service.test.ts","backend/src/shared/services/__tests__/prompt-registry.service.test.ts","backend/src/shared/services/abac-policy.service.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/services/custom-fields.service.ts","backend/src/shared/services/dynamic-state-machine.service.ts","backend/src/shared/services/field-encryption.service.ts","backend/src/shared/services/immutable-audit.service.ts","backend/src/shared/services/llm-gateway.service.ts","backend/src/shared/services/materialized-view.service.ts","backend/src/shared/services/prompt-registry.service.ts","backend/src/shared/services/rag-pipeline.service.ts","backend/src/shared/utils/__tests__/permission-normalizer.test.ts","backend/src/shared/utils/__tests__/validation-security.test.ts","backend/src/shared/utils/permission-normalizer.ts","deploy/clickhouse/config.xml","deploy/clickhouse/init.sql","deploy/debezium/register-connector.json","deploy/tempo/config.yaml","docker-compose.analytics.yml","docs/test-plan/TEST-PLAN.md","docs/user-manual/convert-tech-manual.mjs","docs/user-manual/convert-to-html.mjs","docs/user-manual/screenshots/01-login-2026-03-23T00-12-58-197Z.png","docs/user-manual/screenshots/02-dashboard-2026-03-23T00-13-11-223Z.png","docs/user-manual/screenshots/03-ai-agents-2026-03-23T00-13-44-706Z.png","docs/user-manual/screenshots/04-leads-2026-03-23T00-13-49-733Z.png","docs/user-manual/screenshots/05-lead-qualification-2026-03-23T00-13-55-424Z.png","docs/user-manual/screenshots/06-content-library-2026-03-23T00-14-01-180Z.png","docs/user-manual/screenshots/07-campaigns-2026-03-23T00-14-06-696Z.png","docs/user-manual/screenshots/08-opportunities-2026-03-23T00-14-12-799Z.png","docs/user-manual/screenshots/09-quotes-2026-03-23T00-14-20-564Z.png","docs/user-manual/screenshots/10-contracts-2026-03-23T00-14-26-796Z.png","docs/user-manual/screenshots/11-orders-2026-03-23T00-14-32-331Z.png","docs/user-manual/screenshots/12-stores-2026-03-23T00-14-37-745Z.png","docs/user-manual/screenshots/13-tickets-2026-03-23T00-14-43-846Z.png","docs/user-manual/screenshots/14-sla-2026-03-23T00-14-49-340Z.png","docs/user-manual/screenshots/15-ar-ledger-2026-03-23T00-14-54-842Z.png","docs/user-manual/screenshots/16-payments-2026-03-23T00-14-59-958Z.png","docs/user-manual/screenshots/17-purchase-orders-2026-03-23T00-15-06-034Z.png","docs/user-manual/screenshots/19-products-2026-03-23T00-15-17-479Z.png","docs/user-manual/screenshots/20-knowledge-2026-03-23T00-15-24-044Z.png","docs/user-manual/screenshots/21-approvals-2026-03-23T00-15-30-115Z.png","docs/user-manual/screenshots/22-hr-attendance-2026-03-23T00-15-36-643Z.png","docs/user-manual/screenshots/23-tenant-configs-2026-03-23T00-15-42-739Z.png","docs/user-manual/screenshots/25-roles-2026-03-23T00-15-56-801Z.png","docs/user-manual/screenshots/26-customers-2026-03-23T00-16-02-467Z.png","docs/user-manual/screenshots/27-im-2026-03-23T00-16-07-704Z.png","docs/user-manual/screenshots/tech-01-api-docs-2026-03-23T00-30-33-332Z.png","docs/user-manual/screenshots/tech-02-system-monitor-2026-03-23T00-30-42-759Z.png","docs/user-manual/screenshots/tech-03-event-logs-fix-2026-03-23T01-07-06-085Z.png","docs/user-manual/screenshots/tech-04-scheduled-jobs-2026-03-23T00-31-01-868Z.png","docs/user-manual/screenshots/tech-05-process-designer-2026-03-23T00-31-11-126Z.png","docs/user-manual/screenshots/tech-06-operation-logs-2026-03-23T00-31-20-335Z.png","docs/user-manual/screenshots/tech-07-settings-fix-2026-03-23T01-04-46-329Z.png","docs/user-manual/screenshots/tech-08-notification-configs-2026-03-23T00-31-38-845Z.png","docs/user-manual/technical-manual-content.md","docs/user-manual/technical-manual.html","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","docs/user-manual/巨嗨全域智库-技术开发手册-v1.0.pdf","docs/user-manual/巨嗨全域智库-用户使用手册-v1.0.pdf","e2e/QUARANTINE.md","e2e/playwright-report/data/0841239e09a180630fc75a988c85edb7d05739ad.md","e2e/playwright-report/data/db1fc0403d7c6af356a063a72ff6b4161a90d53a.png","e2e/test-results/.playwright-artifacts-240/040dee8f334f6c93fa788311a8961dae.png","e2e/test-results/.playwright-artifacts-240/058f808b72bfb61b392c5078d5509418.png","e2e/test-results/.playwright-artifacts-240/0893f4c2a4a7c014d48a306a37a5dc6f.png","e2e/test-results/.playwright-artifacts-240/1bd44c2c27b13a8e4e20754676e16753.png","e2e/test-results/.playwright-artifacts-240/202267e939ad0f07474e283188a20e7d.png","e2e/test-results/.playwright-artifacts-240/2643239379fd7e6fb2b3af6dacebc4fa.png","e2e/test-results/.playwright-artifacts-240/275d5fde4f54663504fbe6b3e84548d3.png","e2e/test-results/.playwright-artifacts-240/42867d3c5c17db159677472c69e89621.png","e2e/test-results/.playwright-artifacts-240/437c27fb2bacac72655c93b0b195c12b.png","e2e/test-results/.playwright-artifacts-240/4e1e7cc1649f584e86226ca11178f09d.png","e2e/test-results/.playwright-artifacts-240/505ec08f78c1ac4cfbd5a64a3e01ec29.png","e2e/test-results/.playwright-artifacts-240/50ad9cd6f3585ecf685f91c233f1100f.png","e2e/test-results/.playwright-artifacts-240/56d48ae872fca36631d1f464243747be.png","e2e/test-results/.playwright-artifacts-240/5be73b706dafcc86885ef501dccd65f9.png","e2e/test-results/.playwright-artifacts-240/61a48f54c74157d08f79a5c7638a2c75.png","e2e/test-results/.playwright-artifacts-240/67cbfdd34817fa76173eda99da253422.png","e2e/test-results/.playwright-artifacts-240/6de31eb46d49679d37fcb85e09bf50a7.png","e2e/test-results/.playwright-artifacts-240/719cc5c2833983e26d2e26fb6ecd1410.png","e2e/test-results/.playwright-artifacts-240/765d23b2babbdc342a5e33cda8d39a87.png","e2e/test-results/.playwright-artifacts-240/7f1c5b28525ac2cc41bc099e6f749ab3.png","e2e/test-results/.playwright-artifacts-240/800d3474ffbcfb84327a4cff203da5ab.png","e2e/test-results/.playwright-artifacts-240/82e93cc1f0a93cda9a36e89ffa14b831.png","e2e/test-results/.playwright-artifacts-240/834a6d7b46250bf3a7b6c74804572593.png","e2e/test-results/.playwright-artifacts-240/86a3a201ece1b35521f5b7cb565876c1.png","e2e/test-results/.playwright-artifacts-240/8ab300257837e88962f2a6b7027e13a0.png","e2e/test-results/.playwright-artifacts-240/941e36d46c2caceb2ea0fc70bed6bba5.png","e2e/test-results/.playwright-artifacts-240/9e77802004f48f7c693bc508c5d8d39b.png","e2e/test-results/.playwright-artifacts-240/a0e310742c0a3c96a02bdf2c7db7dfb2.png","e2e/test-results/.playwright-artifacts-240/c4f6a23e9cd556d8fa7d69f40bc122ac.png","e2e/test-results/.playwright-artifacts-240/c51c980a067ead90c72ee084ad8fc00a.png","e2e/test-results/.playwright-artifacts-240/d74a4495418c027fb3e4b838b4aa3521.png","e2e/test-results/.playwright-artifacts-240/dace6040beafd8d86a5baf4fe5f1ae2a.png","e2e/test-results/.playwright-artifacts-240/dce6caafe2e1fcdac2ee738369ed6098.png","e2e/test-results/.playwright-artifacts-240/df5df0fd3c83d8265e719acb6b3d0ee6.png","e2e/test-results/.playwright-artifacts-240/e07d7068d011403eeb553914cb5c364e.png","e2e/test-results/.playwright-artifacts-240/e5e82b734579c829a5939d96fcc05dff.png","e2e/test-results/.playwright-artifacts-240/e8cb101c527d05e5df6ca5fc2b904583.png","e2e/test-results/.playwright-artifacts-240/eaff6d849895b87797832af1a9a24d65.png","e2e/test-results/.playwright-artifacts-240/f0ff9429d9c71385cff328a94e1a703c.png","e2e/test-results/.playwright-artifacts-240/fba7d655d78e525212c958c6c2a7227d.png","e2e/test-results/.playwright-artifacts-241/094966347a6999bd858f5ab8a249f754.png","e2e/test-results/.playwright-artifacts-241/0b6068733b160e988728b3140bdbaef5.png","e2e/test-results/.playwright-artifacts-241/1bb8fb49ed8335c1df210ed0bbe9493c.png","e2e/test-results/.playwright-artifacts-241/1dc0352fb049eb5707b5ecdeb36e7588.png","e2e/test-results/.playwright-artifacts-241/248c7bde5073b7b22bc5737b59012f68.png","e2e/test-results/.playwright-artifacts-241/26e9b207b71a36018b2252efb70c0366.png","e2e/test-results/.playwright-artifacts-241/2ae009986a6d6b9b348e715140f0e05f.png","e2e/test-results/.playwright-artifacts-241/2e7643de8fce869a4dc6701b06f92045.png","e2e/test-results/.playwright-artifacts-241/34681405d2abf88b9b47e450f48ecaa3.png","e2e/test-results/.playwright-artifacts-241/45be60ad912dd46dfb7aa5cbee9f02d0.png","e2e/test-results/.playwright-artifacts-241/5bb07c90a274dac44963d8cceca8eb1e.png","e2e/test-results/.playwright-artifacts-241/5c81aa46578a6e4a399dcdf0d73ba8d3.png","e2e/test-results/.playwright-artifacts-241/643d257ac5cf926a92dfd4e67907a9dc.png","e2e/test-results/.playwright-artifacts-241/6454481b50c1adc6bc7e94d3fb946915.png","e2e/test-results/.playwright-artifacts-241/67232c5e7156aba881fa65d80af1207b.png","e2e/test-results/.playwright-artifacts-241/67d9026a171dc55ffc861a72ce9d4b2c.png","e2e/test-results/.playwright-artifacts-241/714aeb4c6b5950f311af88662c8b4424.png","e2e/test-results/.playwright-artifacts-241/7a8af77cb2620429282f057b7c7fd0ae.png","e2e/test-results/.playwright-artifacts-241/922282efa032ca16073c502056c2826f.png","e2e/test-results/.playwright-artifacts-241/9543fc36ad8580206d7a961590a7d83d.png","e2e/test-results/.playwright-artifacts-241/9c77f778e3b32c88fe3524c93a150de1.png","e2e/test-results/.playwright-artifacts-241/9c8a27ce50fdd70f043debd37db84261.png","e2e/test-results/.playwright-artifacts-241/9ce478697576abf803f23864fd3d01c7.png","e2e/test-results/.playwright-artifacts-241/a9df789309206957d3696bd33d4752b7.png","e2e/test-results/.playwright-artifacts-241/b16f350537ed50e46405ecd91275e9f4.png","e2e/test-results/.playwright-artifacts-241/b213a106fbdfe86fe5a2e40fd333aa0c.png","e2e/test-results/.playwright-artifacts-241/b82911d04e9ad9e3893351a21a56b011.png","e2e/test-results/.playwright-artifacts-241/b94da2213274548a93d16676dea24087.png","e2e/test-results/.playwright-artifacts-241/b98a93160e626ed6e3b05e7e527192fa.png","e2e/test-results/.playwright-artifacts-241/c2f7e527724d7e5eb8d379e3fbfc1b83.png","e2e/test-results/.playwright-artifacts-241/c800d08cc104e95000629104c11fd8b3.png","e2e/test-results/.playwright-artifacts-241/cd36bb67c1c05fedeac1923b06e6d4f5.png","e2e/test-results/.playwright-artifacts-241/d2ebbb7e8ca084380958c49f40f1bcac.png","e2e/test-results/.playwright-artifacts-241/d6ef796cc1833026cab7434b435084f4.png","e2e/test-results/.playwright-artifacts-241/dc49bd3538e061f12e7b17709d6bba0d.png","e2e/test-results/.playwright-artifacts-241/e014d348f300176842a83787a7f7938c.png","e2e/test-results/.playwright-artifacts-241/e8b738bc9925b35cacb65db8fd37bd27.png","e2e/test-results/.playwright-artifacts-241/ed833f2d058e02081a433bb71c5c71ca.png","e2e/test-results/.playwright-artifacts-241/f42b7455348166022fb51732079f16a2.png","e2e/test-results/.playwright-artifacts-241/f7ffcca2f8bd695dbd421e83dfd7dacb.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b88a-矩阵-module-resource-requests-chromium/attachments/probe-P01-828a9fe4a1cc10ad814b8901ea3f331dabb4f466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1445f--创建成功-module-admin-settings-chromium/attachments/probe-C01-b70ed60761f6c844c0724c90be9bd3a2e28f887e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-159b4-失败-module-resource-requests-chromium/attachments/probe-C02-579660baa87709a7140145510b380b58f4afc555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1a1ae--用户管理-P01-权限矩阵-module-users-chromium/attachments/probe-P01-21d61422e262180992f04fed0d6e1f58f4f8928a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ad44--异常恢复-module-admin-settings-chromium/attachments/probe-E01-167118b9260fa76b0a2a1f0fa96675e800dc6f74.json","e2e/test-results/crud-00-crud-runner-CRUD-严-20309-异常恢复-module-stage-knowledge-chromium/attachments/probe-E01-65c2d06fb134d7cb9f3931a7131cf0260ea97061.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22f29-理-D02-恢复或不可见校验-module-roles-chromium/attachments/probe-D02-d26e2d296f3e8407ccfd9c2cc2f24cf6829a8508.json","e2e/test-results/crud-00-crud-runner-CRUD-严-239e9-验-module-knowledge-feedback-chromium/attachments/probe-D02-e58bb6a96915688b8f2287bbb25bab2388293c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ba01-更新成功-module-stage-knowledge-chromium/attachments/probe-U01-208017e0ddf654dcec7c7e6ed78e75cdbcaeefe5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c5eb-建校验失败-module-admin-settings-chromium/attachments/probe-C02-c917accda05528170401af83fb11a330a3cbda4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34d7b-可见校验-module-stage-knowledge-chromium/attachments/probe-D02-821275ce5a1a2d3c0299a4438bc0551a6d53176c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34f0e--更新成功-module-admin-settings-chromium/attachments/probe-U01-f4a4e93fb88c2ef19abde8f7dd664879de695c9f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-365ba--用户管理-C01-创建成功-module-users-chromium/attachments/probe-C01-900190bda813dce7a5e62caaa492f5a3677f3e23.json","e2e/test-results/crud-00-crud-runner-CRUD-严-392a1--im-即时通讯-E01-异常恢复-module-im-chromium/attachments/probe-E01-fa3a07d4be5ae62afd985ab459bbd15a33a2fdef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a38c--D01-删除-软-硬-可用-module-roles-chromium/attachments/probe-D01-ae5282c3a94d95edce6b6b614e0f1c7bb0cacec0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4220e--角色管理-P01-权限矩阵-module-roles-chromium/attachments/probe-P01-bf40ed0eb839caf8e2dc359b3fbf41adc61a8186.json","e2e/test-results/crud-00-crud-runner-CRUD-严-43344-校验失败-module-stage-knowledge-chromium/attachments/probe-C02-c40333d9c899532c29747a98c3608a229f081c35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-460f0-户管理-C02-创建校验失败-module-users-chromium/attachments/probe-C02-793ed6868532d6f08fa3b7e01ef91cee883edc62.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b07d--可用-module-process-designer-chromium/attachments/probe-D01-acbfe0f811bb517717a6b841a585892cbebff24c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4f5-可用-module-resource-requests-chromium/attachments/probe-D01-2e8e53337f638a07ab7cc317baa3d97366c245e0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7f3--im-即时通讯-P01-权限矩阵-module-im-chromium/attachments/probe-P01-b22bb94be6b4cf1a140ec1c9f11b2ce4b3ea633f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52d8f-校验-module-resource-requests-chromium/attachments/probe-D02-dbcf98c1134a088b83217a812d0c0a8650ac69a3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-538f0-色管理-C02-创建校验失败-module-roles-chromium/attachments/probe-C02-2f4ee0aa5a1a7bf30860781b2ab8e052c752a87c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-60bbd-管理-U02-更新权限-冲突-module-roles-chromium/attachments/probe-U02-0531249436aff73c81d0fc89355c4cbc7167ec8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bff7-理-D02-恢复或不可见校验-module-users-chromium/attachments/probe-D02-cfa483afa2a0dcba0b625f169d4ddfd4df7815e9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6d194-见校验-module-process-designer-chromium/attachments/probe-D02-ace63a12d5911b8f54a54b89d94362c9b7276535.json","e2e/test-results/crud-00-crud-runner-CRUD-严-72cf4--角色管理-U01-更新成功-module-roles-chromium/attachments/probe-U01-daf71b632d68b74b441594222818913f9937bd60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-77ec5-创建成功-module-stage-knowledge-chromium/attachments/probe-C01-073ec52dcaf122cc92ed77c881d6407f63e053ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f7f1--列表可读-module-admin-settings-chromium/attachments/probe-R01-1b19c02416b08eebec04e254505821f27bda570e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89494--冲突-module-process-designer-chromium/attachments/probe-U02-57053c2bcdfde404efd732026ff7bbb7c2a742c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89599-冲突-module-resource-requests-chromium/attachments/probe-U02-3bbd6461e4141361d2910d0d997a2174989df606.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d2e4-硬-可用-module-stage-knowledge-chromium/attachments/probe-D01-bcca5204eae3c340bcf2e5d455dde9e35cc10053.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8fa15-复-module-knowledge-feedback-chromium/attachments/probe-E01-768d744b990df78d05147237c0636c4ee771c1ed.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9d5c3-新成功-module-process-designer-chromium/attachments/probe-U01-b82cb3f43ec5fd03fbcf5e9a47076d4b327698f7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a99bb-m-即时通讯-C02-创建校验失败-module-im-chromium/attachments/probe-C02-fd074e16ad7f94b54706d083613b4b5d32b93e4b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4daf--权限矩阵-module-admin-settings-chromium/attachments/probe-P01-d0080ae80a82c103bcd848bca31d749b3dcc8352.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b8549-成功-module-resource-requests-chromium/attachments/probe-U01-ca13f11ed3d09b5def3fe7e441ad40110d2b0379.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4557--用户管理-U01-更新成功-module-users-chromium/attachments/probe-U01-712df3b828fbaea6fc759167308e86fa7855176f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c39-恢复-module-resource-requests-chromium/attachments/probe-E01-e9b591e744c63185541a625ceba5e5d973b6746b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c7867--角色管理-C01-创建成功-module-roles-chromium/attachments/probe-C01-7a7d119a902c3f458539ddaa114898e0a33f4d8f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc828--即时通讯-U02-更新权限-冲突-module-im-chromium/attachments/probe-U02-76760ce7a07288e361d11e3be6c77b61b817ee40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce2ac--详情可读-module-admin-settings-chromium/attachments/probe-R03-cea057b72b957fdb65cc5e3b674bfa2f05636e5e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d14d4--用户管理-E01-异常恢复-module-users-chromium/attachments/probe-E01-6169c2a0eaab0a87b4892d56e1c64902f64e0217.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3762-限-冲突-module-stage-knowledge-chromium/attachments/probe-U02-9e395cc67c38073bfd6eb6ad38fe5ac43a337d56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d6fb4-常恢复-module-process-designer-chromium/attachments/probe-E01-b1f8e178d5a774eddb298c119317b36e0414d60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de878--角色管理-E01-异常恢复-module-roles-chromium/attachments/probe-E01-bb017dd97b92cb05f37191c933e038af13a8c04a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e43a6-限矩阵-module-process-designer-chromium/attachments/probe-P01-e9df19eeca43b46dca36a135566329b6da44cacd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e4560-管理-U02-更新权限-冲突-module-users-chromium/attachments/probe-U02-a105db3f1ef20b6b8ba0ed401d244b376932736b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ea129-阵-module-knowledge-feedback-chromium/attachments/probe-P01-c3160dc84a9d7fea219587cb594dd8add36d515d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec3b8-验失败-module-process-designer-chromium/attachments/probe-C02-dae6185bd96e2e2c88c4bb9104517a939b2afb15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed28f-权限矩阵-module-stage-knowledge-chromium/attachments/probe-P01-703da6de6b8031b653cf5cb16f3656f251917838.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee943-成功-module-resource-requests-chromium/attachments/probe-C01-96dc059a7597ae051b9d321db1cb4b470806e6f4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eee91-用-module-knowledge-feedback-chromium/attachments/probe-D01-43d0c2e97c66fbd3301826ea68d66fce62cb7eb0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f3c4d-询筛选分页-module-admin-settings-chromium/attachments/probe-R02-55334ddef6735b6dddfc2d2e6143a089efb9be24.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f690b--D01-删除-软-硬-可用-module-users-chromium/attachments/probe-D01-6438fdd0fae658cd354e2761efa5b0065ab74607.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fabfb-建成功-module-process-designer-chromium/attachments/probe-C01-65e7119661d41d890e1f8d734662a8ce3b15268c.json","e2e/test-results/crud/probes/admin-settings-C01-1774228943803.json","e2e/test-results/crud/probes/admin-settings-C02-1774228945689.json","e2e/test-results/crud/probes/admin-settings-E01-1774228954200.json","e2e/test-results/crud/probes/admin-settings-P01-1774228952357.json","e2e/test-results/crud/probes/admin-settings-R01-1774228946846.json","e2e/test-results/crud/probes/admin-settings-R02-1774228948718.json","e2e/test-results/crud/probes/admin-settings-R03-1774228950565.json","e2e/test-results/crud/probes/admin-settings-U01-1774228956047.json","e2e/test-results/crud/probes/im-C02-1774228926548.json","e2e/test-results/crud/probes/im-E01-1774228936351.json","e2e/test-results/crud/probes/im-P01-1774228934107.json","e2e/test-results/crud/probes/im-U02-1774228939732.json","e2e/test-results/crud/probes/knowledge-feedback-D01-1774228819428.json","e2e/test-results/crud/probes/knowledge-feedback-D02-1774228821536.json","e2e/test-results/crud/probes/knowledge-feedback-E01-1774228817921.json","e2e/test-results/crud/probes/knowledge-feedback-P01-1774228815781.json","e2e/test-results/crud/probes/process-designer-C01-1774228822742.json","e2e/test-results/crud/probes/process-designer-C02-1774228824586.json","e2e/test-results/crud/probes/process-designer-D01-1774228839637.json","e2e/test-results/crud/probes/process-designer-D02-1774228841175.json","e2e/test-results/crud/probes/process-designer-E01-1774228834388.json","e2e/test-results/crud/probes/process-designer-P01-1774228832112.json","e2e/test-results/crud/probes/process-designer-U01-1774228835867.json","e2e/test-results/crud/probes/process-designer-U02-1774228837789.json","e2e/test-results/crud/probes/resource-requests-C01-1774228842926.json","e2e/test-results/crud/probes/resource-requests-C02-1774228844702.json","e2e/test-results/crud/probes/resource-requests-D01-1774228859373.json","e2e/test-results/crud/probes/resource-requests-D02-1774228861489.json","e2e/test-results/crud/probes/resource-requests-E01-1774228854515.json","e2e/test-results/crud/probes/resource-requests-P01-1774228852276.json","e2e/test-results/crud/probes/resource-requests-U01-1774228855843.json","e2e/test-results/crud/probes/resource-requests-U02-1774228857762.json","e2e/test-results/crud/probes/roles-C01-1774228862700.json","e2e/test-results/crud/probes/roles-C02-1774228864549.json","e2e/test-results/crud/probes/roles-D01-1774228879608.json","e2e/test-results/crud/probes/roles-D02-1774228881181.json","e2e/test-results/crud/probes/roles-E01-1774228874266.json","e2e/test-results/crud/probes/roles-P01-1774228872022.json","e2e/test-results/crud/probes/roles-U01-1774228875744.json","e2e/test-results/crud/probes/roles-U02-1774228877671.json","e2e/test-results/crud/probes/stage-knowledge-C01-1774228882938.json","e2e/test-results/crud/probes/stage-knowledge-C02-1774228884716.json","e2e/test-results/crud/probes/stage-knowledge-D01-1774228900165.json","e2e/test-results/crud/probes/stage-knowledge-D02-1774228901711.json","e2e/test-results/crud/probes/stage-knowledge-E01-1774228894714.json","e2e/test-results/crud/probes/stage-knowledge-P01-1774228892441.json","e2e/test-results/crud/probes/stage-knowledge-U01-1774228896206.json","e2e/test-results/crud/probes/stage-knowledge-U02-1774228898148.json","e2e/test-results/crud/probes/users-C01-1774228903774.json","e2e/test-results/crud/probes/users-C02-1774228905307.json","e2e/test-results/crud/probes/users-D01-1774228921548.json","e2e/test-results/crud/probes/users-D02-1774228923127.json","e2e/test-results/crud/probes/users-E01-1774228915372.json","e2e/test-results/crud/probes/users-P01-1774228913142.json","e2e/test-results/crud/probes/users-U01-1774228917209.json","e2e/test-results/crud/probes/users-U02-1774228919166.json","e2e/tests/quarantine/.gitkeep","frontend/src/composables/__tests__/useApiQuery.test.ts","frontend/src/router/modules/acquisition.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/router/modules/compat-redirects.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/dashboard.ts","frontend/src/router/modules/finance.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/marketing.ts","frontend/src/router/modules/sales.ts","frontend/src/router/modules/service.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/router/modules/system.ts","frontend/src/stores/__tests__/app.store.test.ts","frontend/src/stores/__tests__/im.store.test.ts","frontend/src/stores/__tests__/knowledge.store.test.ts","frontend/src/styles/_containers.scss","frontend/src/styles/layers.css","frontend/src/utils/echarts.ts"],"removed":["e2e/test-results/results.json"],"modified":[".github/workflows/ci.yml","backend/.env.example","backend/package.json","backend/scripts/audit-prisma-zod-contract.ts","backend/scripts/generate-rls-policies.ts","backend/src/config/env.ts","backend/src/config/kafka.ts","backend/src/consumers/__tests__/sales.consumer.test.ts","backend/src/main.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.test.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/campaigns/campaign.service.enhanced.test.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.test.ts","backend/src/modules/channels/channel.schema.test.ts","backend/src/modules/community-gamification/community-gamification.service.test.ts","backend/src/modules/community-materials/community-material.service.test.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/content-analytics/content-analytics.service.test.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customer-analytics/customer-analytics.service.test.ts","backend/src/modules/customer-balance/customer-balance.service.test.ts","backend/src/modules/financial-reports/financial-reports.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.test.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.test.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.test.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.test.ts","backend/src/modules/im/websocket/gateway.ts","backend/src/modules/im/websocket/health.ts","backend/src/modules/im/websocket/redis-adapter.ts","backend/src/modules/integration-services/integration-service.service.test.ts","backend/src/modules/lead-qualification/qualification.service.test.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.test.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.test.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/livestream/livestream.service.test.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.test.ts","backend/src/modules/marketing-content/marketing-content.service.test.ts","backend/src/modules/marketing-forms/marketing-form.service.test.ts","backend/src/modules/marketing-north-star/marketing-north-star.service.test.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.test.ts","backend/src/modules/marketing/marketing.service.test.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-statement.service.ts","backend/src/modules/pm/pm.service.test.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/quotes/quote-decompose.service.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/rma/rma.service.test.ts","backend/src/modules/sample-requests/sample-request.service.test.ts","backend/src/modules/serial-numbers/sn.service.test.ts","backend/src/modules/sms-marketing/sms-marketing.service.test.ts","backend/src/modules/social-interactions/social-interactions.service.test.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/services/__tests__/outbox-processor.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/src/shared/state-machines/__tests__/ai-task.machine.test.ts","backend/src/shared/state-machines/__tests__/contract.machine.test.ts","backend/src/shared/utils/biz-code.test.ts","backend/src/shared/utils/crud.ts","backend/tests/unit/process-core/workflow-e2e.test.ts","backend/tests/unit/services/lead.service.test.ts","backend/tests/unit/services/quote.service.test.ts","deploy/grafana/provisioning/datasources/datasources.yml","docker-compose.prod.yml","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/playwright.config.ts","e2e/test-results/.last-run.json","frontend/package.json","frontend/src/components/common/DataTable.vue","frontend/src/components/responsive/ResponsiveChart.vue","frontend/src/main.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/supplemental.ts","frontend/src/stores/auth.ts","frontend/src/styles/index.scss","frontend/src/views/ai-agents/autopilot/AITestCases.vue","frontend/src/views/ai-agents/components/AgentModelManager.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/campaigns/analytics/index.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/FunnelChart.vue","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/inventory/Analytics.vue","frontend/src/views/knowledge/components/KnowledgeGraph.vue","frontend/src/views/service-dashboard/components/SLAPanel.vue","frontend/src/views/service-dashboard/components/SatisfactionPanel.vue","frontend/src/views/service-dashboard/components/TicketStatsPanel.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/vite.config.ts","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"339ea969ec2633756fb1a155d47723d0f61396a4","message":"chore: comprehensive governance updates and test artifacts\n\n- Add Prisma schema modularization and migration scripts\n- Add service test coverage across all modules (AI, alliance, community, marketing, etc.)\n- Add shared services (cache, custom-fields, dynamic-state-machine, encryption, etc.)\n- Add infrastructure configs (ClickHouse, Debezium, Tempo)\n- Add user manual and technical documentation with screenshots\n- Add router module organization for all centers\n- Add store/test coverage and Playwright artifacts\n- Update CI workflow, environment configs, and dependencies\n- Fix security issues in auth, kafka, and validation layers\n- Fix permission naming tests to expect kebab-case output\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/339ea969ec2633756fb1a155d47723d0f61396a4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T09:22:37+08:00","added":["backend/prisma/migrations/manual/create_dynamic_sm_and_custom_fields.sql","backend/prisma/migrations/manual/create_knowledge_embeddings.sql","backend/prisma/migrations/materialized_views.sql","backend/prisma/schema/_base.prisma","backend/prisma/schema/_enums.prisma","backend/prisma/schema/ai.prisma","backend/prisma/schema/alliance.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/customers.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/geo.prisma","backend/prisma/schema/hr.prisma","backend/prisma/schema/im.prisma","backend/prisma/schema/knowledge.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/livestream.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/products.prisma","backend/prisma/schema/project.prisma","backend/prisma/schema/renewals.prisma","backend/prisma/schema/sales.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/social.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/config/__tests__/kafka-router.test.ts","backend/src/config/tracing.ts","backend/src/modules/ai-copilot/ai-copilot.service.test.ts","backend/src/modules/alliance-analytics/alliance-analytics.service.test.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.test.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-products/alliance-product.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.test.ts","backend/src/modules/alliance-referrals/alliance-referral.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/approval-templates/approval-template.service.test.ts","backend/src/modules/campaign-targets/campaign-target.service.test.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.test.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.test.ts","backend/src/modules/community-activities/community-activity.service.test.ts","backend/src/modules/community-analytics/community-analytics.service.test.ts","backend/src/modules/community-fission/community-fission.service.test.ts","backend/src/modules/community-groups/community-group.service.test.ts","backend/src/modules/community-members/community-member.service.test.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.test.ts","backend/src/modules/content-categories/content-category.service.test.ts","backend/src/modules/content-copyright/content-copyright.service.test.ts","backend/src/modules/content-creation/content-creation.service.test.ts","backend/src/modules/content-distribution/content-distribution.service.test.ts","backend/src/modules/content-library/content-library.service.test.ts","backend/src/modules/content-review/content-review.service.test.ts","backend/src/modules/content-templates/content-template.service.test.ts","backend/src/modules/contract-templates/contract-template.service.test.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.test.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.test.ts","backend/src/modules/customer-journey/customer-journey.service.test.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.test.ts","backend/src/modules/customer-ltv/customer-ltv.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.test.ts","backend/src/modules/dimension-transform/dimension-transform.service.test.ts","backend/src/modules/disbursements/disbursement-record.service.test.ts","backend/src/modules/events/event.service.test.ts","backend/src/modules/finance/finance-credits.service.test.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-refunds.service.test.ts","backend/src/modules/finance/finance.service.test.ts","backend/src/modules/geo-analytics/geo-analytics.service.test.ts","backend/src/modules/geo-fences/geo-fences.service.test.ts","backend/src/modules/geo-keywords/geo-keyword.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.test.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.test.ts","backend/src/modules/hr/positions/positions.service.test.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.test.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.test.ts","backend/src/modules/livestream-products/livestream-product.service.test.ts","backend/src/modules/livestream-rooms/livestream-room.service.test.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.test.ts","backend/src/modules/livestream-scripts/livestream-script.service.test.ts","backend/src/modules/marketing-calendar/marketing-calendar.service.test.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.test.ts","backend/src/modules/marketing-matrix/matrix.service.test.ts","backend/src/modules/mdm/mdm.service.test.ts","backend/src/modules/menus/menu.service.test.ts","backend/src/modules/multi-touch-attribution/multi-touch-attribution.service.test.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.test.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.test.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.test.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.test.ts","backend/src/modules/reports/report.service.test.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.test.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.test.ts","backend/src/modules/self-operated-store/self-operated-store.service.test.ts","backend/src/modules/social-accounts/social-account.service.test.ts","backend/src/modules/social-auto-replies/social-auto-reply.service.test.ts","backend/src/modules/social-posts/social-post.service.test.ts","backend/src/modules/store-agency/store-agency.service.test.ts","backend/src/modules/suppliers/supplier.service.test.ts","backend/src/modules/video-calls/video-call.service.test.ts","backend/src/shared/middleware/__tests__/security-fixes.test.ts","backend/src/shared/middleware/field-encryption.middleware.ts","backend/src/shared/middleware/rate-limit.middleware.ts","backend/src/shared/services/__tests__/audit-log.service.test.ts","backend/src/shared/services/__tests__/custom-fields.service.test.ts","backend/src/shared/services/__tests__/dynamic-state-machine.service.test.ts","backend/src/shared/services/__tests__/list-cache.service.test.ts","backend/src/shared/services/__tests__/llm-gateway.service.test.ts","backend/src/shared/services/__tests__/prompt-registry.service.test.ts","backend/src/shared/services/abac-policy.service.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/services/custom-fields.service.ts","backend/src/shared/services/dynamic-state-machine.service.ts","backend/src/shared/services/field-encryption.service.ts","backend/src/shared/services/immutable-audit.service.ts","backend/src/shared/services/llm-gateway.service.ts","backend/src/shared/services/materialized-view.service.ts","backend/src/shared/services/prompt-registry.service.ts","backend/src/shared/services/rag-pipeline.service.ts","backend/src/shared/utils/__tests__/permission-normalizer.test.ts","backend/src/shared/utils/__tests__/validation-security.test.ts","backend/src/shared/utils/permission-normalizer.ts","deploy/clickhouse/config.xml","deploy/clickhouse/init.sql","deploy/debezium/register-connector.json","deploy/tempo/config.yaml","docker-compose.analytics.yml","docs/test-plan/TEST-PLAN.md","docs/user-manual/convert-tech-manual.mjs","docs/user-manual/convert-to-html.mjs","docs/user-manual/screenshots/01-login-2026-03-23T00-12-58-197Z.png","docs/user-manual/screenshots/02-dashboard-2026-03-23T00-13-11-223Z.png","docs/user-manual/screenshots/03-ai-agents-2026-03-23T00-13-44-706Z.png","docs/user-manual/screenshots/04-leads-2026-03-23T00-13-49-733Z.png","docs/user-manual/screenshots/05-lead-qualification-2026-03-23T00-13-55-424Z.png","docs/user-manual/screenshots/06-content-library-2026-03-23T00-14-01-180Z.png","docs/user-manual/screenshots/07-campaigns-2026-03-23T00-14-06-696Z.png","docs/user-manual/screenshots/08-opportunities-2026-03-23T00-14-12-799Z.png","docs/user-manual/screenshots/09-quotes-2026-03-23T00-14-20-564Z.png","docs/user-manual/screenshots/10-contracts-2026-03-23T00-14-26-796Z.png","docs/user-manual/screenshots/11-orders-2026-03-23T00-14-32-331Z.png","docs/user-manual/screenshots/12-stores-2026-03-23T00-14-37-745Z.png","docs/user-manual/screenshots/13-tickets-2026-03-23T00-14-43-846Z.png","docs/user-manual/screenshots/14-sla-2026-03-23T00-14-49-340Z.png","docs/user-manual/screenshots/15-ar-ledger-2026-03-23T00-14-54-842Z.png","docs/user-manual/screenshots/16-payments-2026-03-23T00-14-59-958Z.png","docs/user-manual/screenshots/17-purchase-orders-2026-03-23T00-15-06-034Z.png","docs/user-manual/screenshots/19-products-2026-03-23T00-15-17-479Z.png","docs/user-manual/screenshots/20-knowledge-2026-03-23T00-15-24-044Z.png","docs/user-manual/screenshots/21-approvals-2026-03-23T00-15-30-115Z.png","docs/user-manual/screenshots/22-hr-attendance-2026-03-23T00-15-36-643Z.png","docs/user-manual/screenshots/23-tenant-configs-2026-03-23T00-15-42-739Z.png","docs/user-manual/screenshots/25-roles-2026-03-23T00-15-56-801Z.png","docs/user-manual/screenshots/26-customers-2026-03-23T00-16-02-467Z.png","docs/user-manual/screenshots/27-im-2026-03-23T00-16-07-704Z.png","docs/user-manual/screenshots/tech-01-api-docs-2026-03-23T00-30-33-332Z.png","docs/user-manual/screenshots/tech-02-system-monitor-2026-03-23T00-30-42-759Z.png","docs/user-manual/screenshots/tech-03-event-logs-fix-2026-03-23T01-07-06-085Z.png","docs/user-manual/screenshots/tech-04-scheduled-jobs-2026-03-23T00-31-01-868Z.png","docs/user-manual/screenshots/tech-05-process-designer-2026-03-23T00-31-11-126Z.png","docs/user-manual/screenshots/tech-06-operation-logs-2026-03-23T00-31-20-335Z.png","docs/user-manual/screenshots/tech-07-settings-fix-2026-03-23T01-04-46-329Z.png","docs/user-manual/screenshots/tech-08-notification-configs-2026-03-23T00-31-38-845Z.png","docs/user-manual/technical-manual-content.md","docs/user-manual/technical-manual.html","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","docs/user-manual/巨嗨全域智库-技术开发手册-v1.0.pdf","docs/user-manual/巨嗨全域智库-用户使用手册-v1.0.pdf","e2e/QUARANTINE.md","e2e/playwright-report/data/0841239e09a180630fc75a988c85edb7d05739ad.md","e2e/playwright-report/data/db1fc0403d7c6af356a063a72ff6b4161a90d53a.png","e2e/test-results/.playwright-artifacts-240/040dee8f334f6c93fa788311a8961dae.png","e2e/test-results/.playwright-artifacts-240/058f808b72bfb61b392c5078d5509418.png","e2e/test-results/.playwright-artifacts-240/0893f4c2a4a7c014d48a306a37a5dc6f.png","e2e/test-results/.playwright-artifacts-240/1bd44c2c27b13a8e4e20754676e16753.png","e2e/test-results/.playwright-artifacts-240/202267e939ad0f07474e283188a20e7d.png","e2e/test-results/.playwright-artifacts-240/2643239379fd7e6fb2b3af6dacebc4fa.png","e2e/test-results/.playwright-artifacts-240/275d5fde4f54663504fbe6b3e84548d3.png","e2e/test-results/.playwright-artifacts-240/42867d3c5c17db159677472c69e89621.png","e2e/test-results/.playwright-artifacts-240/437c27fb2bacac72655c93b0b195c12b.png","e2e/test-results/.playwright-artifacts-240/4e1e7cc1649f584e86226ca11178f09d.png","e2e/test-results/.playwright-artifacts-240/505ec08f78c1ac4cfbd5a64a3e01ec29.png","e2e/test-results/.playwright-artifacts-240/50ad9cd6f3585ecf685f91c233f1100f.png","e2e/test-results/.playwright-artifacts-240/56d48ae872fca36631d1f464243747be.png","e2e/test-results/.playwright-artifacts-240/5be73b706dafcc86885ef501dccd65f9.png","e2e/test-results/.playwright-artifacts-240/61a48f54c74157d08f79a5c7638a2c75.png","e2e/test-results/.playwright-artifacts-240/67cbfdd34817fa76173eda99da253422.png","e2e/test-results/.playwright-artifacts-240/6de31eb46d49679d37fcb85e09bf50a7.png","e2e/test-results/.playwright-artifacts-240/719cc5c2833983e26d2e26fb6ecd1410.png","e2e/test-results/.playwright-artifacts-240/765d23b2babbdc342a5e33cda8d39a87.png","e2e/test-results/.playwright-artifacts-240/7f1c5b28525ac2cc41bc099e6f749ab3.png","e2e/test-results/.playwright-artifacts-240/800d3474ffbcfb84327a4cff203da5ab.png","e2e/test-results/.playwright-artifacts-240/82e93cc1f0a93cda9a36e89ffa14b831.png","e2e/test-results/.playwright-artifacts-240/834a6d7b46250bf3a7b6c74804572593.png","e2e/test-results/.playwright-artifacts-240/86a3a201ece1b35521f5b7cb565876c1.png","e2e/test-results/.playwright-artifacts-240/8ab300257837e88962f2a6b7027e13a0.png","e2e/test-results/.playwright-artifacts-240/941e36d46c2caceb2ea0fc70bed6bba5.png","e2e/test-results/.playwright-artifacts-240/9e77802004f48f7c693bc508c5d8d39b.png","e2e/test-results/.playwright-artifacts-240/a0e310742c0a3c96a02bdf2c7db7dfb2.png","e2e/test-results/.playwright-artifacts-240/c4f6a23e9cd556d8fa7d69f40bc122ac.png","e2e/test-results/.playwright-artifacts-240/c51c980a067ead90c72ee084ad8fc00a.png","e2e/test-results/.playwright-artifacts-240/d74a4495418c027fb3e4b838b4aa3521.png","e2e/test-results/.playwright-artifacts-240/dace6040beafd8d86a5baf4fe5f1ae2a.png","e2e/test-results/.playwright-artifacts-240/dce6caafe2e1fcdac2ee738369ed6098.png","e2e/test-results/.playwright-artifacts-240/df5df0fd3c83d8265e719acb6b3d0ee6.png","e2e/test-results/.playwright-artifacts-240/e07d7068d011403eeb553914cb5c364e.png","e2e/test-results/.playwright-artifacts-240/e5e82b734579c829a5939d96fcc05dff.png","e2e/test-results/.playwright-artifacts-240/e8cb101c527d05e5df6ca5fc2b904583.png","e2e/test-results/.playwright-artifacts-240/eaff6d849895b87797832af1a9a24d65.png","e2e/test-results/.playwright-artifacts-240/f0ff9429d9c71385cff328a94e1a703c.png","e2e/test-results/.playwright-artifacts-240/fba7d655d78e525212c958c6c2a7227d.png","e2e/test-results/.playwright-artifacts-241/094966347a6999bd858f5ab8a249f754.png","e2e/test-results/.playwright-artifacts-241/0b6068733b160e988728b3140bdbaef5.png","e2e/test-results/.playwright-artifacts-241/1bb8fb49ed8335c1df210ed0bbe9493c.png","e2e/test-results/.playwright-artifacts-241/1dc0352fb049eb5707b5ecdeb36e7588.png","e2e/test-results/.playwright-artifacts-241/248c7bde5073b7b22bc5737b59012f68.png","e2e/test-results/.playwright-artifacts-241/26e9b207b71a36018b2252efb70c0366.png","e2e/test-results/.playwright-artifacts-241/2ae009986a6d6b9b348e715140f0e05f.png","e2e/test-results/.playwright-artifacts-241/2e7643de8fce869a4dc6701b06f92045.png","e2e/test-results/.playwright-artifacts-241/34681405d2abf88b9b47e450f48ecaa3.png","e2e/test-results/.playwright-artifacts-241/45be60ad912dd46dfb7aa5cbee9f02d0.png","e2e/test-results/.playwright-artifacts-241/5bb07c90a274dac44963d8cceca8eb1e.png","e2e/test-results/.playwright-artifacts-241/5c81aa46578a6e4a399dcdf0d73ba8d3.png","e2e/test-results/.playwright-artifacts-241/643d257ac5cf926a92dfd4e67907a9dc.png","e2e/test-results/.playwright-artifacts-241/6454481b50c1adc6bc7e94d3fb946915.png","e2e/test-results/.playwright-artifacts-241/67232c5e7156aba881fa65d80af1207b.png","e2e/test-results/.playwright-artifacts-241/67d9026a171dc55ffc861a72ce9d4b2c.png","e2e/test-results/.playwright-artifacts-241/714aeb4c6b5950f311af88662c8b4424.png","e2e/test-results/.playwright-artifacts-241/7a8af77cb2620429282f057b7c7fd0ae.png","e2e/test-results/.playwright-artifacts-241/922282efa032ca16073c502056c2826f.png","e2e/test-results/.playwright-artifacts-241/9543fc36ad8580206d7a961590a7d83d.png","e2e/test-results/.playwright-artifacts-241/9c77f778e3b32c88fe3524c93a150de1.png","e2e/test-results/.playwright-artifacts-241/9c8a27ce50fdd70f043debd37db84261.png","e2e/test-results/.playwright-artifacts-241/9ce478697576abf803f23864fd3d01c7.png","e2e/test-results/.playwright-artifacts-241/a9df789309206957d3696bd33d4752b7.png","e2e/test-results/.playwright-artifacts-241/b16f350537ed50e46405ecd91275e9f4.png","e2e/test-results/.playwright-artifacts-241/b213a106fbdfe86fe5a2e40fd333aa0c.png","e2e/test-results/.playwright-artifacts-241/b82911d04e9ad9e3893351a21a56b011.png","e2e/test-results/.playwright-artifacts-241/b94da2213274548a93d16676dea24087.png","e2e/test-results/.playwright-artifacts-241/b98a93160e626ed6e3b05e7e527192fa.png","e2e/test-results/.playwright-artifacts-241/c2f7e527724d7e5eb8d379e3fbfc1b83.png","e2e/test-results/.playwright-artifacts-241/c800d08cc104e95000629104c11fd8b3.png","e2e/test-results/.playwright-artifacts-241/cd36bb67c1c05fedeac1923b06e6d4f5.png","e2e/test-results/.playwright-artifacts-241/d2ebbb7e8ca084380958c49f40f1bcac.png","e2e/test-results/.playwright-artifacts-241/d6ef796cc1833026cab7434b435084f4.png","e2e/test-results/.playwright-artifacts-241/dc49bd3538e061f12e7b17709d6bba0d.png","e2e/test-results/.playwright-artifacts-241/e014d348f300176842a83787a7f7938c.png","e2e/test-results/.playwright-artifacts-241/e8b738bc9925b35cacb65db8fd37bd27.png","e2e/test-results/.playwright-artifacts-241/ed833f2d058e02081a433bb71c5c71ca.png","e2e/test-results/.playwright-artifacts-241/f42b7455348166022fb51732079f16a2.png","e2e/test-results/.playwright-artifacts-241/f7ffcca2f8bd695dbd421e83dfd7dacb.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b88a-矩阵-module-resource-requests-chromium/attachments/probe-P01-828a9fe4a1cc10ad814b8901ea3f331dabb4f466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1445f--创建成功-module-admin-settings-chromium/attachments/probe-C01-b70ed60761f6c844c0724c90be9bd3a2e28f887e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-159b4-失败-module-resource-requests-chromium/attachments/probe-C02-579660baa87709a7140145510b380b58f4afc555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1a1ae--用户管理-P01-权限矩阵-module-users-chromium/attachments/probe-P01-21d61422e262180992f04fed0d6e1f58f4f8928a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ad44--异常恢复-module-admin-settings-chromium/attachments/probe-E01-167118b9260fa76b0a2a1f0fa96675e800dc6f74.json","e2e/test-results/crud-00-crud-runner-CRUD-严-20309-异常恢复-module-stage-knowledge-chromium/attachments/probe-E01-65c2d06fb134d7cb9f3931a7131cf0260ea97061.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22f29-理-D02-恢复或不可见校验-module-roles-chromium/attachments/probe-D02-d26e2d296f3e8407ccfd9c2cc2f24cf6829a8508.json","e2e/test-results/crud-00-crud-runner-CRUD-严-239e9-验-module-knowledge-feedback-chromium/attachments/probe-D02-e58bb6a96915688b8f2287bbb25bab2388293c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ba01-更新成功-module-stage-knowledge-chromium/attachments/probe-U01-208017e0ddf654dcec7c7e6ed78e75cdbcaeefe5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c5eb-建校验失败-module-admin-settings-chromium/attachments/probe-C02-c917accda05528170401af83fb11a330a3cbda4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34d7b-可见校验-module-stage-knowledge-chromium/attachments/probe-D02-821275ce5a1a2d3c0299a4438bc0551a6d53176c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34f0e--更新成功-module-admin-settings-chromium/attachments/probe-U01-f4a4e93fb88c2ef19abde8f7dd664879de695c9f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-365ba--用户管理-C01-创建成功-module-users-chromium/attachments/probe-C01-900190bda813dce7a5e62caaa492f5a3677f3e23.json","e2e/test-results/crud-00-crud-runner-CRUD-严-392a1--im-即时通讯-E01-异常恢复-module-im-chromium/attachments/probe-E01-fa3a07d4be5ae62afd985ab459bbd15a33a2fdef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a38c--D01-删除-软-硬-可用-module-roles-chromium/attachments/probe-D01-ae5282c3a94d95edce6b6b614e0f1c7bb0cacec0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4220e--角色管理-P01-权限矩阵-module-roles-chromium/attachments/probe-P01-bf40ed0eb839caf8e2dc359b3fbf41adc61a8186.json","e2e/test-results/crud-00-crud-runner-CRUD-严-43344-校验失败-module-stage-knowledge-chromium/attachments/probe-C02-c40333d9c899532c29747a98c3608a229f081c35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-460f0-户管理-C02-创建校验失败-module-users-chromium/attachments/probe-C02-793ed6868532d6f08fa3b7e01ef91cee883edc62.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b07d--可用-module-process-designer-chromium/attachments/probe-D01-acbfe0f811bb517717a6b841a585892cbebff24c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4f5-可用-module-resource-requests-chromium/attachments/probe-D01-2e8e53337f638a07ab7cc317baa3d97366c245e0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7f3--im-即时通讯-P01-权限矩阵-module-im-chromium/attachments/probe-P01-b22bb94be6b4cf1a140ec1c9f11b2ce4b3ea633f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52d8f-校验-module-resource-requests-chromium/attachments/probe-D02-dbcf98c1134a088b83217a812d0c0a8650ac69a3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-538f0-色管理-C02-创建校验失败-module-roles-chromium/attachments/probe-C02-2f4ee0aa5a1a7bf30860781b2ab8e052c752a87c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-60bbd-管理-U02-更新权限-冲突-module-roles-chromium/attachments/probe-U02-0531249436aff73c81d0fc89355c4cbc7167ec8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bff7-理-D02-恢复或不可见校验-module-users-chromium/attachments/probe-D02-cfa483afa2a0dcba0b625f169d4ddfd4df7815e9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6d194-见校验-module-process-designer-chromium/attachments/probe-D02-ace63a12d5911b8f54a54b89d94362c9b7276535.json","e2e/test-results/crud-00-crud-runner-CRUD-严-72cf4--角色管理-U01-更新成功-module-roles-chromium/attachments/probe-U01-daf71b632d68b74b441594222818913f9937bd60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-77ec5-创建成功-module-stage-knowledge-chromium/attachments/probe-C01-073ec52dcaf122cc92ed77c881d6407f63e053ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f7f1--列表可读-module-admin-settings-chromium/attachments/probe-R01-1b19c02416b08eebec04e254505821f27bda570e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89494--冲突-module-process-designer-chromium/attachments/probe-U02-57053c2bcdfde404efd732026ff7bbb7c2a742c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89599-冲突-module-resource-requests-chromium/attachments/probe-U02-3bbd6461e4141361d2910d0d997a2174989df606.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d2e4-硬-可用-module-stage-knowledge-chromium/attachments/probe-D01-bcca5204eae3c340bcf2e5d455dde9e35cc10053.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8fa15-复-module-knowledge-feedback-chromium/attachments/probe-E01-768d744b990df78d05147237c0636c4ee771c1ed.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9d5c3-新成功-module-process-designer-chromium/attachments/probe-U01-b82cb3f43ec5fd03fbcf5e9a47076d4b327698f7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a99bb-m-即时通讯-C02-创建校验失败-module-im-chromium/attachments/probe-C02-fd074e16ad7f94b54706d083613b4b5d32b93e4b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4daf--权限矩阵-module-admin-settings-chromium/attachments/probe-P01-d0080ae80a82c103bcd848bca31d749b3dcc8352.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b8549-成功-module-resource-requests-chromium/attachments/probe-U01-ca13f11ed3d09b5def3fe7e441ad40110d2b0379.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4557--用户管理-U01-更新成功-module-users-chromium/attachments/probe-U01-712df3b828fbaea6fc759167308e86fa7855176f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c39-恢复-module-resource-requests-chromium/attachments/probe-E01-e9b591e744c63185541a625ceba5e5d973b6746b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c7867--角色管理-C01-创建成功-module-roles-chromium/attachments/probe-C01-7a7d119a902c3f458539ddaa114898e0a33f4d8f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc828--即时通讯-U02-更新权限-冲突-module-im-chromium/attachments/probe-U02-76760ce7a07288e361d11e3be6c77b61b817ee40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce2ac--详情可读-module-admin-settings-chromium/attachments/probe-R03-cea057b72b957fdb65cc5e3b674bfa2f05636e5e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d14d4--用户管理-E01-异常恢复-module-users-chromium/attachments/probe-E01-6169c2a0eaab0a87b4892d56e1c64902f64e0217.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3762-限-冲突-module-stage-knowledge-chromium/attachments/probe-U02-9e395cc67c38073bfd6eb6ad38fe5ac43a337d56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d6fb4-常恢复-module-process-designer-chromium/attachments/probe-E01-b1f8e178d5a774eddb298c119317b36e0414d60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de878--角色管理-E01-异常恢复-module-roles-chromium/attachments/probe-E01-bb017dd97b92cb05f37191c933e038af13a8c04a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e43a6-限矩阵-module-process-designer-chromium/attachments/probe-P01-e9df19eeca43b46dca36a135566329b6da44cacd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e4560-管理-U02-更新权限-冲突-module-users-chromium/attachments/probe-U02-a105db3f1ef20b6b8ba0ed401d244b376932736b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ea129-阵-module-knowledge-feedback-chromium/attachments/probe-P01-c3160dc84a9d7fea219587cb594dd8add36d515d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec3b8-验失败-module-process-designer-chromium/attachments/probe-C02-dae6185bd96e2e2c88c4bb9104517a939b2afb15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed28f-权限矩阵-module-stage-knowledge-chromium/attachments/probe-P01-703da6de6b8031b653cf5cb16f3656f251917838.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee943-成功-module-resource-requests-chromium/attachments/probe-C01-96dc059a7597ae051b9d321db1cb4b470806e6f4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eee91-用-module-knowledge-feedback-chromium/attachments/probe-D01-43d0c2e97c66fbd3301826ea68d66fce62cb7eb0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f3c4d-询筛选分页-module-admin-settings-chromium/attachments/probe-R02-55334ddef6735b6dddfc2d2e6143a089efb9be24.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f690b--D01-删除-软-硬-可用-module-users-chromium/attachments/probe-D01-6438fdd0fae658cd354e2761efa5b0065ab74607.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fabfb-建成功-module-process-designer-chromium/attachments/probe-C01-65e7119661d41d890e1f8d734662a8ce3b15268c.json","e2e/test-results/crud/probes/admin-settings-C01-1774228943803.json","e2e/test-results/crud/probes/admin-settings-C02-1774228945689.json","e2e/test-results/crud/probes/admin-settings-E01-1774228954200.json","e2e/test-results/crud/probes/admin-settings-P01-1774228952357.json","e2e/test-results/crud/probes/admin-settings-R01-1774228946846.json","e2e/test-results/crud/probes/admin-settings-R02-1774228948718.json","e2e/test-results/crud/probes/admin-settings-R03-1774228950565.json","e2e/test-results/crud/probes/admin-settings-U01-1774228956047.json","e2e/test-results/crud/probes/im-C02-1774228926548.json","e2e/test-results/crud/probes/im-E01-1774228936351.json","e2e/test-results/crud/probes/im-P01-1774228934107.json","e2e/test-results/crud/probes/im-U02-1774228939732.json","e2e/test-results/crud/probes/knowledge-feedback-D01-1774228819428.json","e2e/test-results/crud/probes/knowledge-feedback-D02-1774228821536.json","e2e/test-results/crud/probes/knowledge-feedback-E01-1774228817921.json","e2e/test-results/crud/probes/knowledge-feedback-P01-1774228815781.json","e2e/test-results/crud/probes/process-designer-C01-1774228822742.json","e2e/test-results/crud/probes/process-designer-C02-1774228824586.json","e2e/test-results/crud/probes/process-designer-D01-1774228839637.json","e2e/test-results/crud/probes/process-designer-D02-1774228841175.json","e2e/test-results/crud/probes/process-designer-E01-1774228834388.json","e2e/test-results/crud/probes/process-designer-P01-1774228832112.json","e2e/test-results/crud/probes/process-designer-U01-1774228835867.json","e2e/test-results/crud/probes/process-designer-U02-1774228837789.json","e2e/test-results/crud/probes/resource-requests-C01-1774228842926.json","e2e/test-results/crud/probes/resource-requests-C02-1774228844702.json","e2e/test-results/crud/probes/resource-requests-D01-1774228859373.json","e2e/test-results/crud/probes/resource-requests-D02-1774228861489.json","e2e/test-results/crud/probes/resource-requests-E01-1774228854515.json","e2e/test-results/crud/probes/resource-requests-P01-1774228852276.json","e2e/test-results/crud/probes/resource-requests-U01-1774228855843.json","e2e/test-results/crud/probes/resource-requests-U02-1774228857762.json","e2e/test-results/crud/probes/roles-C01-1774228862700.json","e2e/test-results/crud/probes/roles-C02-1774228864549.json","e2e/test-results/crud/probes/roles-D01-1774228879608.json","e2e/test-results/crud/probes/roles-D02-1774228881181.json","e2e/test-results/crud/probes/roles-E01-1774228874266.json","e2e/test-results/crud/probes/roles-P01-1774228872022.json","e2e/test-results/crud/probes/roles-U01-1774228875744.json","e2e/test-results/crud/probes/roles-U02-1774228877671.json","e2e/test-results/crud/probes/stage-knowledge-C01-1774228882938.json","e2e/test-results/crud/probes/stage-knowledge-C02-1774228884716.json","e2e/test-results/crud/probes/stage-knowledge-D01-1774228900165.json","e2e/test-results/crud/probes/stage-knowledge-D02-1774228901711.json","e2e/test-results/crud/probes/stage-knowledge-E01-1774228894714.json","e2e/test-results/crud/probes/stage-knowledge-P01-1774228892441.json","e2e/test-results/crud/probes/stage-knowledge-U01-1774228896206.json","e2e/test-results/crud/probes/stage-knowledge-U02-1774228898148.json","e2e/test-results/crud/probes/users-C01-1774228903774.json","e2e/test-results/crud/probes/users-C02-1774228905307.json","e2e/test-results/crud/probes/users-D01-1774228921548.json","e2e/test-results/crud/probes/users-D02-1774228923127.json","e2e/test-results/crud/probes/users-E01-1774228915372.json","e2e/test-results/crud/probes/users-P01-1774228913142.json","e2e/test-results/crud/probes/users-U01-1774228917209.json","e2e/test-results/crud/probes/users-U02-1774228919166.json","e2e/tests/quarantine/.gitkeep","frontend/src/composables/__tests__/useApiQuery.test.ts","frontend/src/router/modules/acquisition.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/router/modules/compat-redirects.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/dashboard.ts","frontend/src/router/modules/finance.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/marketing.ts","frontend/src/router/modules/sales.ts","frontend/src/router/modules/service.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/router/modules/system.ts","frontend/src/stores/__tests__/app.store.test.ts","frontend/src/stores/__tests__/im.store.test.ts","frontend/src/stores/__tests__/knowledge.store.test.ts","frontend/src/styles/_containers.scss","frontend/src/styles/layers.css","frontend/src/utils/echarts.ts"],"removed":["e2e/test-results/results.json"],"modified":[".github/workflows/ci.yml","backend/.env.example","backend/package.json","backend/scripts/audit-prisma-zod-contract.ts","backend/scripts/generate-rls-policies.ts","backend/src/config/env.ts","backend/src/config/kafka.ts","backend/src/consumers/__tests__/sales.consumer.test.ts","backend/src/main.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.test.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/campaigns/campaign.service.enhanced.test.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.test.ts","backend/src/modules/channels/channel.schema.test.ts","backend/src/modules/community-gamification/community-gamification.service.test.ts","backend/src/modules/community-materials/community-material.service.test.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/content-analytics/content-analytics.service.test.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customer-analytics/customer-analytics.service.test.ts","backend/src/modules/customer-balance/customer-balance.service.test.ts","backend/src/modules/financial-reports/financial-reports.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.test.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.test.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.test.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.test.ts","backend/src/modules/im/websocket/gateway.ts","backend/src/modules/im/websocket/health.ts","backend/src/modules/im/websocket/redis-adapter.ts","backend/src/modules/integration-services/integration-service.service.test.ts","backend/src/modules/lead-qualification/qualification.service.test.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.test.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.test.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/livestream/livestream.service.test.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.test.ts","backend/src/modules/marketing-content/marketing-content.service.test.ts","backend/src/modules/marketing-forms/marketing-form.service.test.ts","backend/src/modules/marketing-north-star/marketing-north-star.service.test.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.test.ts","backend/src/modules/marketing/marketing.service.test.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-statement.service.ts","backend/src/modules/pm/pm.service.test.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/quotes/quote-decompose.service.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/rma/rma.service.test.ts","backend/src/modules/sample-requests/sample-request.service.test.ts","backend/src/modules/serial-numbers/sn.service.test.ts","backend/src/modules/sms-marketing/sms-marketing.service.test.ts","backend/src/modules/social-interactions/social-interactions.service.test.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/services/__tests__/outbox-processor.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/src/shared/state-machines/__tests__/ai-task.machine.test.ts","backend/src/shared/state-machines/__tests__/contract.machine.test.ts","backend/src/shared/utils/biz-code.test.ts","backend/src/shared/utils/crud.ts","backend/tests/unit/process-core/workflow-e2e.test.ts","backend/tests/unit/services/lead.service.test.ts","backend/tests/unit/services/quote.service.test.ts","deploy/grafana/provisioning/datasources/datasources.yml","docker-compose.prod.yml","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/playwright.config.ts","e2e/test-results/.last-run.json","frontend/package.json","frontend/src/components/common/DataTable.vue","frontend/src/components/responsive/ResponsiveChart.vue","frontend/src/main.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/supplemental.ts","frontend/src/stores/auth.ts","frontend/src/styles/index.scss","frontend/src/views/ai-agents/autopilot/AITestCases.vue","frontend/src/views/ai-agents/components/AgentModelManager.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/campaigns/analytics/index.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/FunnelChart.vue","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/inventory/Analytics.vue","frontend/src/views/knowledge/components/KnowledgeGraph.vue","frontend/src/views/service-dashboard/components/SLAPanel.vue","frontend/src/views/service-dashboard/components/SatisfactionPanel.vue","frontend/src/views/service-dashboard/components/TicketStatsPanel.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/vite.config.ts","pnpm-lock.yaml"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1919936,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:52:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
62
|
1774229062
|
1774229096
|
0
|
1774229061
|
1774229652
|
group: ${{ github.workflow }}-${{ github.ref }}
ca group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
7290
|
chore: comprehensive governance updates and test a chore: comprehensive governance updates and test artifacts...
|
6
|
5
|
database-security.yml
|
7216
|
5
|
0
|
refs/heads/main
|
339ea969ec2633756fb1a155d47723d0f61396a4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","after":"339ea969ec2633756fb1a155d47723d0f61396a4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/df7b6f46170cb46db4771dd1e07991b0b13d90a0...339ea969ec2633756fb1a155d47723d0f61396a4","commits":[{"id":"339ea969ec2633756fb1a155d47723d0f61396a4","message":"chore: comprehensive governance updates and test artifacts\n\n- Add Prisma schema modularization and migration scripts\n- Add service test coverage across all modules (AI, alliance, community, marketing, etc.)\n- Add shared services (cache, custom-fields, dynamic-state-machine, encryption, etc.)\n- Add infrastructure configs (ClickHouse, Debezium, Tempo)\n- Add user manual and technical documentation with screenshots\n- Add router module organization for all centers\n- Add store/test coverage and Playwright artifacts\n- Update CI workflow, environment configs, and dependencies\n- Fix security issues in auth, kafka, and validation layers\n- Fix permission naming tests to expect kebab-case output\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/339ea969ec2633756fb1a155d47723d0f61396a4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T09:22:37+08:00","added":["backend/prisma/migrations/manual/create_dynamic_sm_and_custom_fields.sql","backend/prisma/migrations/manual/create_knowledge_embeddings.sql","backend/prisma/migrations/materialized_views.sql","backend/prisma/schema/_base.prisma","backend/prisma/schema/_enums.prisma","backend/prisma/schema/ai.prisma","backend/prisma/schema/alliance.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/customers.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/geo.prisma","backend/prisma/schema/hr.prisma","backend/prisma/schema/im.prisma","backend/prisma/schema/knowledge.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/livestream.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/products.prisma","backend/prisma/schema/project.prisma","backend/prisma/schema/renewals.prisma","backend/prisma/schema/sales.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/social.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/config/__tests__/kafka-router.test.ts","backend/src/config/tracing.ts","backend/src/modules/ai-copilot/ai-copilot.service.test.ts","backend/src/modules/alliance-analytics/alliance-analytics.service.test.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.test.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-products/alliance-product.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.test.ts","backend/src/modules/alliance-referrals/alliance-referral.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/approval-templates/approval-template.service.test.ts","backend/src/modules/campaign-targets/campaign-target.service.test.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.test.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.test.ts","backend/src/modules/community-activities/community-activity.service.test.ts","backend/src/modules/community-analytics/community-analytics.service.test.ts","backend/src/modules/community-fission/community-fission.service.test.ts","backend/src/modules/community-groups/community-group.service.test.ts","backend/src/modules/community-members/community-member.service.test.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.test.ts","backend/src/modules/content-categories/content-category.service.test.ts","backend/src/modules/content-copyright/content-copyright.service.test.ts","backend/src/modules/content-creation/content-creation.service.test.ts","backend/src/modules/content-distribution/content-distribution.service.test.ts","backend/src/modules/content-library/content-library.service.test.ts","backend/src/modules/content-review/content-review.service.test.ts","backend/src/modules/content-templates/content-template.service.test.ts","backend/src/modules/contract-templates/contract-template.service.test.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.test.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.test.ts","backend/src/modules/customer-journey/customer-journey.service.test.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.test.ts","backend/src/modules/customer-ltv/customer-ltv.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.test.ts","backend/src/modules/dimension-transform/dimension-transform.service.test.ts","backend/src/modules/disbursements/disbursement-record.service.test.ts","backend/src/modules/events/event.service.test.ts","backend/src/modules/finance/finance-credits.service.test.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-refunds.service.test.ts","backend/src/modules/finance/finance.service.test.ts","backend/src/modules/geo-analytics/geo-analytics.service.test.ts","backend/src/modules/geo-fences/geo-fences.service.test.ts","backend/src/modules/geo-keywords/geo-keyword.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.test.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.test.ts","backend/src/modules/hr/positions/positions.service.test.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.test.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.test.ts","backend/src/modules/livestream-products/livestream-product.service.test.ts","backend/src/modules/livestream-rooms/livestream-room.service.test.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.test.ts","backend/src/modules/livestream-scripts/livestream-script.service.test.ts","backend/src/modules/marketing-calendar/marketing-calendar.service.test.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.test.ts","backend/src/modules/marketing-matrix/matrix.service.test.ts","backend/src/modules/mdm/mdm.service.test.ts","backend/src/modules/menus/menu.service.test.ts","backend/src/modules/multi-touch-attribution/multi-touch-attribution.service.test.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.test.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.test.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.test.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.test.ts","backend/src/modules/reports/report.service.test.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.test.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.test.ts","backend/src/modules/self-operated-store/self-operated-store.service.test.ts","backend/src/modules/social-accounts/social-account.service.test.ts","backend/src/modules/social-auto-replies/social-auto-reply.service.test.ts","backend/src/modules/social-posts/social-post.service.test.ts","backend/src/modules/store-agency/store-agency.service.test.ts","backend/src/modules/suppliers/supplier.service.test.ts","backend/src/modules/video-calls/video-call.service.test.ts","backend/src/shared/middleware/__tests__/security-fixes.test.ts","backend/src/shared/middleware/field-encryption.middleware.ts","backend/src/shared/middleware/rate-limit.middleware.ts","backend/src/shared/services/__tests__/audit-log.service.test.ts","backend/src/shared/services/__tests__/custom-fields.service.test.ts","backend/src/shared/services/__tests__/dynamic-state-machine.service.test.ts","backend/src/shared/services/__tests__/list-cache.service.test.ts","backend/src/shared/services/__tests__/llm-gateway.service.test.ts","backend/src/shared/services/__tests__/prompt-registry.service.test.ts","backend/src/shared/services/abac-policy.service.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/services/custom-fields.service.ts","backend/src/shared/services/dynamic-state-machine.service.ts","backend/src/shared/services/field-encryption.service.ts","backend/src/shared/services/immutable-audit.service.ts","backend/src/shared/services/llm-gateway.service.ts","backend/src/shared/services/materialized-view.service.ts","backend/src/shared/services/prompt-registry.service.ts","backend/src/shared/services/rag-pipeline.service.ts","backend/src/shared/utils/__tests__/permission-normalizer.test.ts","backend/src/shared/utils/__tests__/validation-security.test.ts","backend/src/shared/utils/permission-normalizer.ts","deploy/clickhouse/config.xml","deploy/clickhouse/init.sql","deploy/debezium/register-connector.json","deploy/tempo/config.yaml","docker-compose.analytics.yml","docs/test-plan/TEST-PLAN.md","docs/user-manual/convert-tech-manual.mjs","docs/user-manual/convert-to-html.mjs","docs/user-manual/screenshots/01-login-2026-03-23T00-12-58-197Z.png","docs/user-manual/screenshots/02-dashboard-2026-03-23T00-13-11-223Z.png","docs/user-manual/screenshots/03-ai-agents-2026-03-23T00-13-44-706Z.png","docs/user-manual/screenshots/04-leads-2026-03-23T00-13-49-733Z.png","docs/user-manual/screenshots/05-lead-qualification-2026-03-23T00-13-55-424Z.png","docs/user-manual/screenshots/06-content-library-2026-03-23T00-14-01-180Z.png","docs/user-manual/screenshots/07-campaigns-2026-03-23T00-14-06-696Z.png","docs/user-manual/screenshots/08-opportunities-2026-03-23T00-14-12-799Z.png","docs/user-manual/screenshots/09-quotes-2026-03-23T00-14-20-564Z.png","docs/user-manual/screenshots/10-contracts-2026-03-23T00-14-26-796Z.png","docs/user-manual/screenshots/11-orders-2026-03-23T00-14-32-331Z.png","docs/user-manual/screenshots/12-stores-2026-03-23T00-14-37-745Z.png","docs/user-manual/screenshots/13-tickets-2026-03-23T00-14-43-846Z.png","docs/user-manual/screenshots/14-sla-2026-03-23T00-14-49-340Z.png","docs/user-manual/screenshots/15-ar-ledger-2026-03-23T00-14-54-842Z.png","docs/user-manual/screenshots/16-payments-2026-03-23T00-14-59-958Z.png","docs/user-manual/screenshots/17-purchase-orders-2026-03-23T00-15-06-034Z.png","docs/user-manual/screenshots/19-products-2026-03-23T00-15-17-479Z.png","docs/user-manual/screenshots/20-knowledge-2026-03-23T00-15-24-044Z.png","docs/user-manual/screenshots/21-approvals-2026-03-23T00-15-30-115Z.png","docs/user-manual/screenshots/22-hr-attendance-2026-03-23T00-15-36-643Z.png","docs/user-manual/screenshots/23-tenant-configs-2026-03-23T00-15-42-739Z.png","docs/user-manual/screenshots/25-roles-2026-03-23T00-15-56-801Z.png","docs/user-manual/screenshots/26-customers-2026-03-23T00-16-02-467Z.png","docs/user-manual/screenshots/27-im-2026-03-23T00-16-07-704Z.png","docs/user-manual/screenshots/tech-01-api-docs-2026-03-23T00-30-33-332Z.png","docs/user-manual/screenshots/tech-02-system-monitor-2026-03-23T00-30-42-759Z.png","docs/user-manual/screenshots/tech-03-event-logs-fix-2026-03-23T01-07-06-085Z.png","docs/user-manual/screenshots/tech-04-scheduled-jobs-2026-03-23T00-31-01-868Z.png","docs/user-manual/screenshots/tech-05-process-designer-2026-03-23T00-31-11-126Z.png","docs/user-manual/screenshots/tech-06-operation-logs-2026-03-23T00-31-20-335Z.png","docs/user-manual/screenshots/tech-07-settings-fix-2026-03-23T01-04-46-329Z.png","docs/user-manual/screenshots/tech-08-notification-configs-2026-03-23T00-31-38-845Z.png","docs/user-manual/technical-manual-content.md","docs/user-manual/technical-manual.html","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","docs/user-manual/巨嗨全域智库-技术开发手册-v1.0.pdf","docs/user-manual/巨嗨全域智库-用户使用手册-v1.0.pdf","e2e/QUARANTINE.md","e2e/playwright-report/data/0841239e09a180630fc75a988c85edb7d05739ad.md","e2e/playwright-report/data/db1fc0403d7c6af356a063a72ff6b4161a90d53a.png","e2e/test-results/.playwright-artifacts-240/040dee8f334f6c93fa788311a8961dae.png","e2e/test-results/.playwright-artifacts-240/058f808b72bfb61b392c5078d5509418.png","e2e/test-results/.playwright-artifacts-240/0893f4c2a4a7c014d48a306a37a5dc6f.png","e2e/test-results/.playwright-artifacts-240/1bd44c2c27b13a8e4e20754676e16753.png","e2e/test-results/.playwright-artifacts-240/202267e939ad0f07474e283188a20e7d.png","e2e/test-results/.playwright-artifacts-240/2643239379fd7e6fb2b3af6dacebc4fa.png","e2e/test-results/.playwright-artifacts-240/275d5fde4f54663504fbe6b3e84548d3.png","e2e/test-results/.playwright-artifacts-240/42867d3c5c17db159677472c69e89621.png","e2e/test-results/.playwright-artifacts-240/437c27fb2bacac72655c93b0b195c12b.png","e2e/test-results/.playwright-artifacts-240/4e1e7cc1649f584e86226ca11178f09d.png","e2e/test-results/.playwright-artifacts-240/505ec08f78c1ac4cfbd5a64a3e01ec29.png","e2e/test-results/.playwright-artifacts-240/50ad9cd6f3585ecf685f91c233f1100f.png","e2e/test-results/.playwright-artifacts-240/56d48ae872fca36631d1f464243747be.png","e2e/test-results/.playwright-artifacts-240/5be73b706dafcc86885ef501dccd65f9.png","e2e/test-results/.playwright-artifacts-240/61a48f54c74157d08f79a5c7638a2c75.png","e2e/test-results/.playwright-artifacts-240/67cbfdd34817fa76173eda99da253422.png","e2e/test-results/.playwright-artifacts-240/6de31eb46d49679d37fcb85e09bf50a7.png","e2e/test-results/.playwright-artifacts-240/719cc5c2833983e26d2e26fb6ecd1410.png","e2e/test-results/.playwright-artifacts-240/765d23b2babbdc342a5e33cda8d39a87.png","e2e/test-results/.playwright-artifacts-240/7f1c5b28525ac2cc41bc099e6f749ab3.png","e2e/test-results/.playwright-artifacts-240/800d3474ffbcfb84327a4cff203da5ab.png","e2e/test-results/.playwright-artifacts-240/82e93cc1f0a93cda9a36e89ffa14b831.png","e2e/test-results/.playwright-artifacts-240/834a6d7b46250bf3a7b6c74804572593.png","e2e/test-results/.playwright-artifacts-240/86a3a201ece1b35521f5b7cb565876c1.png","e2e/test-results/.playwright-artifacts-240/8ab300257837e88962f2a6b7027e13a0.png","e2e/test-results/.playwright-artifacts-240/941e36d46c2caceb2ea0fc70bed6bba5.png","e2e/test-results/.playwright-artifacts-240/9e77802004f48f7c693bc508c5d8d39b.png","e2e/test-results/.playwright-artifacts-240/a0e310742c0a3c96a02bdf2c7db7dfb2.png","e2e/test-results/.playwright-artifacts-240/c4f6a23e9cd556d8fa7d69f40bc122ac.png","e2e/test-results/.playwright-artifacts-240/c51c980a067ead90c72ee084ad8fc00a.png","e2e/test-results/.playwright-artifacts-240/d74a4495418c027fb3e4b838b4aa3521.png","e2e/test-results/.playwright-artifacts-240/dace6040beafd8d86a5baf4fe5f1ae2a.png","e2e/test-results/.playwright-artifacts-240/dce6caafe2e1fcdac2ee738369ed6098.png","e2e/test-results/.playwright-artifacts-240/df5df0fd3c83d8265e719acb6b3d0ee6.png","e2e/test-results/.playwright-artifacts-240/e07d7068d011403eeb553914cb5c364e.png","e2e/test-results/.playwright-artifacts-240/e5e82b734579c829a5939d96fcc05dff.png","e2e/test-results/.playwright-artifacts-240/e8cb101c527d05e5df6ca5fc2b904583.png","e2e/test-results/.playwright-artifacts-240/eaff6d849895b87797832af1a9a24d65.png","e2e/test-results/.playwright-artifacts-240/f0ff9429d9c71385cff328a94e1a703c.png","e2e/test-results/.playwright-artifacts-240/fba7d655d78e525212c958c6c2a7227d.png","e2e/test-results/.playwright-artifacts-241/094966347a6999bd858f5ab8a249f754.png","e2e/test-results/.playwright-artifacts-241/0b6068733b160e988728b3140bdbaef5.png","e2e/test-results/.playwright-artifacts-241/1bb8fb49ed8335c1df210ed0bbe9493c.png","e2e/test-results/.playwright-artifacts-241/1dc0352fb049eb5707b5ecdeb36e7588.png","e2e/test-results/.playwright-artifacts-241/248c7bde5073b7b22bc5737b59012f68.png","e2e/test-results/.playwright-artifacts-241/26e9b207b71a36018b2252efb70c0366.png","e2e/test-results/.playwright-artifacts-241/2ae009986a6d6b9b348e715140f0e05f.png","e2e/test-results/.playwright-artifacts-241/2e7643de8fce869a4dc6701b06f92045.png","e2e/test-results/.playwright-artifacts-241/34681405d2abf88b9b47e450f48ecaa3.png","e2e/test-results/.playwright-artifacts-241/45be60ad912dd46dfb7aa5cbee9f02d0.png","e2e/test-results/.playwright-artifacts-241/5bb07c90a274dac44963d8cceca8eb1e.png","e2e/test-results/.playwright-artifacts-241/5c81aa46578a6e4a399dcdf0d73ba8d3.png","e2e/test-results/.playwright-artifacts-241/643d257ac5cf926a92dfd4e67907a9dc.png","e2e/test-results/.playwright-artifacts-241/6454481b50c1adc6bc7e94d3fb946915.png","e2e/test-results/.playwright-artifacts-241/67232c5e7156aba881fa65d80af1207b.png","e2e/test-results/.playwright-artifacts-241/67d9026a171dc55ffc861a72ce9d4b2c.png","e2e/test-results/.playwright-artifacts-241/714aeb4c6b5950f311af88662c8b4424.png","e2e/test-results/.playwright-artifacts-241/7a8af77cb2620429282f057b7c7fd0ae.png","e2e/test-results/.playwright-artifacts-241/922282efa032ca16073c502056c2826f.png","e2e/test-results/.playwright-artifacts-241/9543fc36ad8580206d7a961590a7d83d.png","e2e/test-results/.playwright-artifacts-241/9c77f778e3b32c88fe3524c93a150de1.png","e2e/test-results/.playwright-artifacts-241/9c8a27ce50fdd70f043debd37db84261.png","e2e/test-results/.playwright-artifacts-241/9ce478697576abf803f23864fd3d01c7.png","e2e/test-results/.playwright-artifacts-241/a9df789309206957d3696bd33d4752b7.png","e2e/test-results/.playwright-artifacts-241/b16f350537ed50e46405ecd91275e9f4.png","e2e/test-results/.playwright-artifacts-241/b213a106fbdfe86fe5a2e40fd333aa0c.png","e2e/test-results/.playwright-artifacts-241/b82911d04e9ad9e3893351a21a56b011.png","e2e/test-results/.playwright-artifacts-241/b94da2213274548a93d16676dea24087.png","e2e/test-results/.playwright-artifacts-241/b98a93160e626ed6e3b05e7e527192fa.png","e2e/test-results/.playwright-artifacts-241/c2f7e527724d7e5eb8d379e3fbfc1b83.png","e2e/test-results/.playwright-artifacts-241/c800d08cc104e95000629104c11fd8b3.png","e2e/test-results/.playwright-artifacts-241/cd36bb67c1c05fedeac1923b06e6d4f5.png","e2e/test-results/.playwright-artifacts-241/d2ebbb7e8ca084380958c49f40f1bcac.png","e2e/test-results/.playwright-artifacts-241/d6ef796cc1833026cab7434b435084f4.png","e2e/test-results/.playwright-artifacts-241/dc49bd3538e061f12e7b17709d6bba0d.png","e2e/test-results/.playwright-artifacts-241/e014d348f300176842a83787a7f7938c.png","e2e/test-results/.playwright-artifacts-241/e8b738bc9925b35cacb65db8fd37bd27.png","e2e/test-results/.playwright-artifacts-241/ed833f2d058e02081a433bb71c5c71ca.png","e2e/test-results/.playwright-artifacts-241/f42b7455348166022fb51732079f16a2.png","e2e/test-results/.playwright-artifacts-241/f7ffcca2f8bd695dbd421e83dfd7dacb.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b88a-矩阵-module-resource-requests-chromium/attachments/probe-P01-828a9fe4a1cc10ad814b8901ea3f331dabb4f466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1445f--创建成功-module-admin-settings-chromium/attachments/probe-C01-b70ed60761f6c844c0724c90be9bd3a2e28f887e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-159b4-失败-module-resource-requests-chromium/attachments/probe-C02-579660baa87709a7140145510b380b58f4afc555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1a1ae--用户管理-P01-权限矩阵-module-users-chromium/attachments/probe-P01-21d61422e262180992f04fed0d6e1f58f4f8928a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ad44--异常恢复-module-admin-settings-chromium/attachments/probe-E01-167118b9260fa76b0a2a1f0fa96675e800dc6f74.json","e2e/test-results/crud-00-crud-runner-CRUD-严-20309-异常恢复-module-stage-knowledge-chromium/attachments/probe-E01-65c2d06fb134d7cb9f3931a7131cf0260ea97061.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22f29-理-D02-恢复或不可见校验-module-roles-chromium/attachments/probe-D02-d26e2d296f3e8407ccfd9c2cc2f24cf6829a8508.json","e2e/test-results/crud-00-crud-runner-CRUD-严-239e9-验-module-knowledge-feedback-chromium/attachments/probe-D02-e58bb6a96915688b8f2287bbb25bab2388293c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ba01-更新成功-module-stage-knowledge-chromium/attachments/probe-U01-208017e0ddf654dcec7c7e6ed78e75cdbcaeefe5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c5eb-建校验失败-module-admin-settings-chromium/attachments/probe-C02-c917accda05528170401af83fb11a330a3cbda4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34d7b-可见校验-module-stage-knowledge-chromium/attachments/probe-D02-821275ce5a1a2d3c0299a4438bc0551a6d53176c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34f0e--更新成功-module-admin-settings-chromium/attachments/probe-U01-f4a4e93fb88c2ef19abde8f7dd664879de695c9f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-365ba--用户管理-C01-创建成功-module-users-chromium/attachments/probe-C01-900190bda813dce7a5e62caaa492f5a3677f3e23.json","e2e/test-results/crud-00-crud-runner-CRUD-严-392a1--im-即时通讯-E01-异常恢复-module-im-chromium/attachments/probe-E01-fa3a07d4be5ae62afd985ab459bbd15a33a2fdef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a38c--D01-删除-软-硬-可用-module-roles-chromium/attachments/probe-D01-ae5282c3a94d95edce6b6b614e0f1c7bb0cacec0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4220e--角色管理-P01-权限矩阵-module-roles-chromium/attachments/probe-P01-bf40ed0eb839caf8e2dc359b3fbf41adc61a8186.json","e2e/test-results/crud-00-crud-runner-CRUD-严-43344-校验失败-module-stage-knowledge-chromium/attachments/probe-C02-c40333d9c899532c29747a98c3608a229f081c35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-460f0-户管理-C02-创建校验失败-module-users-chromium/attachments/probe-C02-793ed6868532d6f08fa3b7e01ef91cee883edc62.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b07d--可用-module-process-designer-chromium/attachments/probe-D01-acbfe0f811bb517717a6b841a585892cbebff24c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4f5-可用-module-resource-requests-chromium/attachments/probe-D01-2e8e53337f638a07ab7cc317baa3d97366c245e0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7f3--im-即时通讯-P01-权限矩阵-module-im-chromium/attachments/probe-P01-b22bb94be6b4cf1a140ec1c9f11b2ce4b3ea633f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52d8f-校验-module-resource-requests-chromium/attachments/probe-D02-dbcf98c1134a088b83217a812d0c0a8650ac69a3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-538f0-色管理-C02-创建校验失败-module-roles-chromium/attachments/probe-C02-2f4ee0aa5a1a7bf30860781b2ab8e052c752a87c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-60bbd-管理-U02-更新权限-冲突-module-roles-chromium/attachments/probe-U02-0531249436aff73c81d0fc89355c4cbc7167ec8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bff7-理-D02-恢复或不可见校验-module-users-chromium/attachments/probe-D02-cfa483afa2a0dcba0b625f169d4ddfd4df7815e9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6d194-见校验-module-process-designer-chromium/attachments/probe-D02-ace63a12d5911b8f54a54b89d94362c9b7276535.json","e2e/test-results/crud-00-crud-runner-CRUD-严-72cf4--角色管理-U01-更新成功-module-roles-chromium/attachments/probe-U01-daf71b632d68b74b441594222818913f9937bd60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-77ec5-创建成功-module-stage-knowledge-chromium/attachments/probe-C01-073ec52dcaf122cc92ed77c881d6407f63e053ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f7f1--列表可读-module-admin-settings-chromium/attachments/probe-R01-1b19c02416b08eebec04e254505821f27bda570e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89494--冲突-module-process-designer-chromium/attachments/probe-U02-57053c2bcdfde404efd732026ff7bbb7c2a742c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89599-冲突-module-resource-requests-chromium/attachments/probe-U02-3bbd6461e4141361d2910d0d997a2174989df606.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d2e4-硬-可用-module-stage-knowledge-chromium/attachments/probe-D01-bcca5204eae3c340bcf2e5d455dde9e35cc10053.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8fa15-复-module-knowledge-feedback-chromium/attachments/probe-E01-768d744b990df78d05147237c0636c4ee771c1ed.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9d5c3-新成功-module-process-designer-chromium/attachments/probe-U01-b82cb3f43ec5fd03fbcf5e9a47076d4b327698f7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a99bb-m-即时通讯-C02-创建校验失败-module-im-chromium/attachments/probe-C02-fd074e16ad7f94b54706d083613b4b5d32b93e4b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4daf--权限矩阵-module-admin-settings-chromium/attachments/probe-P01-d0080ae80a82c103bcd848bca31d749b3dcc8352.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b8549-成功-module-resource-requests-chromium/attachments/probe-U01-ca13f11ed3d09b5def3fe7e441ad40110d2b0379.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4557--用户管理-U01-更新成功-module-users-chromium/attachments/probe-U01-712df3b828fbaea6fc759167308e86fa7855176f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c39-恢复-module-resource-requests-chromium/attachments/probe-E01-e9b591e744c63185541a625ceba5e5d973b6746b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c7867--角色管理-C01-创建成功-module-roles-chromium/attachments/probe-C01-7a7d119a902c3f458539ddaa114898e0a33f4d8f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc828--即时通讯-U02-更新权限-冲突-module-im-chromium/attachments/probe-U02-76760ce7a07288e361d11e3be6c77b61b817ee40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce2ac--详情可读-module-admin-settings-chromium/attachments/probe-R03-cea057b72b957fdb65cc5e3b674bfa2f05636e5e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d14d4--用户管理-E01-异常恢复-module-users-chromium/attachments/probe-E01-6169c2a0eaab0a87b4892d56e1c64902f64e0217.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3762-限-冲突-module-stage-knowledge-chromium/attachments/probe-U02-9e395cc67c38073bfd6eb6ad38fe5ac43a337d56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d6fb4-常恢复-module-process-designer-chromium/attachments/probe-E01-b1f8e178d5a774eddb298c119317b36e0414d60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de878--角色管理-E01-异常恢复-module-roles-chromium/attachments/probe-E01-bb017dd97b92cb05f37191c933e038af13a8c04a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e43a6-限矩阵-module-process-designer-chromium/attachments/probe-P01-e9df19eeca43b46dca36a135566329b6da44cacd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e4560-管理-U02-更新权限-冲突-module-users-chromium/attachments/probe-U02-a105db3f1ef20b6b8ba0ed401d244b376932736b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ea129-阵-module-knowledge-feedback-chromium/attachments/probe-P01-c3160dc84a9d7fea219587cb594dd8add36d515d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec3b8-验失败-module-process-designer-chromium/attachments/probe-C02-dae6185bd96e2e2c88c4bb9104517a939b2afb15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed28f-权限矩阵-module-stage-knowledge-chromium/attachments/probe-P01-703da6de6b8031b653cf5cb16f3656f251917838.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee943-成功-module-resource-requests-chromium/attachments/probe-C01-96dc059a7597ae051b9d321db1cb4b470806e6f4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eee91-用-module-knowledge-feedback-chromium/attachments/probe-D01-43d0c2e97c66fbd3301826ea68d66fce62cb7eb0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f3c4d-询筛选分页-module-admin-settings-chromium/attachments/probe-R02-55334ddef6735b6dddfc2d2e6143a089efb9be24.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f690b--D01-删除-软-硬-可用-module-users-chromium/attachments/probe-D01-6438fdd0fae658cd354e2761efa5b0065ab74607.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fabfb-建成功-module-process-designer-chromium/attachments/probe-C01-65e7119661d41d890e1f8d734662a8ce3b15268c.json","e2e/test-results/crud/probes/admin-settings-C01-1774228943803.json","e2e/test-results/crud/probes/admin-settings-C02-1774228945689.json","e2e/test-results/crud/probes/admin-settings-E01-1774228954200.json","e2e/test-results/crud/probes/admin-settings-P01-1774228952357.json","e2e/test-results/crud/probes/admin-settings-R01-1774228946846.json","e2e/test-results/crud/probes/admin-settings-R02-1774228948718.json","e2e/test-results/crud/probes/admin-settings-R03-1774228950565.json","e2e/test-results/crud/probes/admin-settings-U01-1774228956047.json","e2e/test-results/crud/probes/im-C02-1774228926548.json","e2e/test-results/crud/probes/im-E01-1774228936351.json","e2e/test-results/crud/probes/im-P01-1774228934107.json","e2e/test-results/crud/probes/im-U02-1774228939732.json","e2e/test-results/crud/probes/knowledge-feedback-D01-1774228819428.json","e2e/test-results/crud/probes/knowledge-feedback-D02-1774228821536.json","e2e/test-results/crud/probes/knowledge-feedback-E01-1774228817921.json","e2e/test-results/crud/probes/knowledge-feedback-P01-1774228815781.json","e2e/test-results/crud/probes/process-designer-C01-1774228822742.json","e2e/test-results/crud/probes/process-designer-C02-1774228824586.json","e2e/test-results/crud/probes/process-designer-D01-1774228839637.json","e2e/test-results/crud/probes/process-designer-D02-1774228841175.json","e2e/test-results/crud/probes/process-designer-E01-1774228834388.json","e2e/test-results/crud/probes/process-designer-P01-1774228832112.json","e2e/test-results/crud/probes/process-designer-U01-1774228835867.json","e2e/test-results/crud/probes/process-designer-U02-1774228837789.json","e2e/test-results/crud/probes/resource-requests-C01-1774228842926.json","e2e/test-results/crud/probes/resource-requests-C02-1774228844702.json","e2e/test-results/crud/probes/resource-requests-D01-1774228859373.json","e2e/test-results/crud/probes/resource-requests-D02-1774228861489.json","e2e/test-results/crud/probes/resource-requests-E01-1774228854515.json","e2e/test-results/crud/probes/resource-requests-P01-1774228852276.json","e2e/test-results/crud/probes/resource-requests-U01-1774228855843.json","e2e/test-results/crud/probes/resource-requests-U02-1774228857762.json","e2e/test-results/crud/probes/roles-C01-1774228862700.json","e2e/test-results/crud/probes/roles-C02-1774228864549.json","e2e/test-results/crud/probes/roles-D01-1774228879608.json","e2e/test-results/crud/probes/roles-D02-1774228881181.json","e2e/test-results/crud/probes/roles-E01-1774228874266.json","e2e/test-results/crud/probes/roles-P01-1774228872022.json","e2e/test-results/crud/probes/roles-U01-1774228875744.json","e2e/test-results/crud/probes/roles-U02-1774228877671.json","e2e/test-results/crud/probes/stage-knowledge-C01-1774228882938.json","e2e/test-results/crud/probes/stage-knowledge-C02-1774228884716.json","e2e/test-results/crud/probes/stage-knowledge-D01-1774228900165.json","e2e/test-results/crud/probes/stage-knowledge-D02-1774228901711.json","e2e/test-results/crud/probes/stage-knowledge-E01-1774228894714.json","e2e/test-results/crud/probes/stage-knowledge-P01-1774228892441.json","e2e/test-results/crud/probes/stage-knowledge-U01-1774228896206.json","e2e/test-results/crud/probes/stage-knowledge-U02-1774228898148.json","e2e/test-results/crud/probes/users-C01-1774228903774.json","e2e/test-results/crud/probes/users-C02-1774228905307.json","e2e/test-results/crud/probes/users-D01-1774228921548.json","e2e/test-results/crud/probes/users-D02-1774228923127.json","e2e/test-results/crud/probes/users-E01-1774228915372.json","e2e/test-results/crud/probes/users-P01-1774228913142.json","e2e/test-results/crud/probes/users-U01-1774228917209.json","e2e/test-results/crud/probes/users-U02-1774228919166.json","e2e/tests/quarantine/.gitkeep","frontend/src/composables/__tests__/useApiQuery.test.ts","frontend/src/router/modules/acquisition.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/router/modules/compat-redirects.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/dashboard.ts","frontend/src/router/modules/finance.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/marketing.ts","frontend/src/router/modules/sales.ts","frontend/src/router/modules/service.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/router/modules/system.ts","frontend/src/stores/__tests__/app.store.test.ts","frontend/src/stores/__tests__/im.store.test.ts","frontend/src/stores/__tests__/knowledge.store.test.ts","frontend/src/styles/_containers.scss","frontend/src/styles/layers.css","frontend/src/utils/echarts.ts"],"removed":["e2e/test-results/results.json"],"modified":[".github/workflows/ci.yml","backend/.env.example","backend/package.json","backend/scripts/audit-prisma-zod-contract.ts","backend/scripts/generate-rls-policies.ts","backend/src/config/env.ts","backend/src/config/kafka.ts","backend/src/consumers/__tests__/sales.consumer.test.ts","backend/src/main.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.test.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/campaigns/campaign.service.enhanced.test.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.test.ts","backend/src/modules/channels/channel.schema.test.ts","backend/src/modules/community-gamification/community-gamification.service.test.ts","backend/src/modules/community-materials/community-material.service.test.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/content-analytics/content-analytics.service.test.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customer-analytics/customer-analytics.service.test.ts","backend/src/modules/customer-balance/customer-balance.service.test.ts","backend/src/modules/financial-reports/financial-reports.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.test.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.test.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.test.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.test.ts","backend/src/modules/im/websocket/gateway.ts","backend/src/modules/im/websocket/health.ts","backend/src/modules/im/websocket/redis-adapter.ts","backend/src/modules/integration-services/integration-service.service.test.ts","backend/src/modules/lead-qualification/qualification.service.test.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.test.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.test.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/livestream/livestream.service.test.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.test.ts","backend/src/modules/marketing-content/marketing-content.service.test.ts","backend/src/modules/marketing-forms/marketing-form.service.test.ts","backend/src/modules/marketing-north-star/marketing-north-star.service.test.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.test.ts","backend/src/modules/marketing/marketing.service.test.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-statement.service.ts","backend/src/modules/pm/pm.service.test.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/quotes/quote-decompose.service.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/rma/rma.service.test.ts","backend/src/modules/sample-requests/sample-request.service.test.ts","backend/src/modules/serial-numbers/sn.service.test.ts","backend/src/modules/sms-marketing/sms-marketing.service.test.ts","backend/src/modules/social-interactions/social-interactions.service.test.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/services/__tests__/outbox-processor.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/src/shared/state-machines/__tests__/ai-task.machine.test.ts","backend/src/shared/state-machines/__tests__/contract.machine.test.ts","backend/src/shared/utils/biz-code.test.ts","backend/src/shared/utils/crud.ts","backend/tests/unit/process-core/workflow-e2e.test.ts","backend/tests/unit/services/lead.service.test.ts","backend/tests/unit/services/quote.service.test.ts","deploy/grafana/provisioning/datasources/datasources.yml","docker-compose.prod.yml","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/playwright.config.ts","e2e/test-results/.last-run.json","frontend/package.json","frontend/src/components/common/DataTable.vue","frontend/src/components/responsive/ResponsiveChart.vue","frontend/src/main.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/supplemental.ts","frontend/src/stores/auth.ts","frontend/src/styles/index.scss","frontend/src/views/ai-agents/autopilot/AITestCases.vue","frontend/src/views/ai-agents/components/AgentModelManager.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/campaigns/analytics/index.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/FunnelChart.vue","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/inventory/Analytics.vue","frontend/src/views/knowledge/components/KnowledgeGraph.vue","frontend/src/views/service-dashboard/components/SLAPanel.vue","frontend/src/views/service-dashboard/components/SatisfactionPanel.vue","frontend/src/views/service-dashboard/components/TicketStatsPanel.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/vite.config.ts","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"339ea969ec2633756fb1a155d47723d0f61396a4","message":"chore: comprehensive governance updates and test artifacts\n\n- Add Prisma schema modularization and migration scripts\n- Add service test coverage across all modules (AI, alliance, community, marketing, etc.)\n- Add shared services (cache, custom-fields, dynamic-state-machine, encryption, etc.)\n- Add infrastructure configs (ClickHouse, Debezium, Tempo)\n- Add user manual and technical documentation with screenshots\n- Add router module organization for all centers\n- Add store/test coverage and Playwright artifacts\n- Update CI workflow, environment configs, and dependencies\n- Fix security issues in auth, kafka, and validation layers\n- Fix permission naming tests to expect kebab-case output\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/339ea969ec2633756fb1a155d47723d0f61396a4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T09:22:37+08:00","added":["backend/prisma/migrations/manual/create_dynamic_sm_and_custom_fields.sql","backend/prisma/migrations/manual/create_knowledge_embeddings.sql","backend/prisma/migrations/materialized_views.sql","backend/prisma/schema/_base.prisma","backend/prisma/schema/_enums.prisma","backend/prisma/schema/ai.prisma","backend/prisma/schema/alliance.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/customers.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/geo.prisma","backend/prisma/schema/hr.prisma","backend/prisma/schema/im.prisma","backend/prisma/schema/knowledge.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/livestream.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/products.prisma","backend/prisma/schema/project.prisma","backend/prisma/schema/renewals.prisma","backend/prisma/schema/sales.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/social.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/config/__tests__/kafka-router.test.ts","backend/src/config/tracing.ts","backend/src/modules/ai-copilot/ai-copilot.service.test.ts","backend/src/modules/alliance-analytics/alliance-analytics.service.test.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.test.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-products/alliance-product.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.test.ts","backend/src/modules/alliance-referrals/alliance-referral.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/approval-templates/approval-template.service.test.ts","backend/src/modules/campaign-targets/campaign-target.service.test.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.test.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.test.ts","backend/src/modules/community-activities/community-activity.service.test.ts","backend/src/modules/community-analytics/community-analytics.service.test.ts","backend/src/modules/community-fission/community-fission.service.test.ts","backend/src/modules/community-groups/community-group.service.test.ts","backend/src/modules/community-members/community-member.service.test.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.test.ts","backend/src/modules/content-categories/content-category.service.test.ts","backend/src/modules/content-copyright/content-copyright.service.test.ts","backend/src/modules/content-creation/content-creation.service.test.ts","backend/src/modules/content-distribution/content-distribution.service.test.ts","backend/src/modules/content-library/content-library.service.test.ts","backend/src/modules/content-review/content-review.service.test.ts","backend/src/modules/content-templates/content-template.service.test.ts","backend/src/modules/contract-templates/contract-template.service.test.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.test.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.test.ts","backend/src/modules/customer-journey/customer-journey.service.test.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.test.ts","backend/src/modules/customer-ltv/customer-ltv.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.test.ts","backend/src/modules/dimension-transform/dimension-transform.service.test.ts","backend/src/modules/disbursements/disbursement-record.service.test.ts","backend/src/modules/events/event.service.test.ts","backend/src/modules/finance/finance-credits.service.test.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-refunds.service.test.ts","backend/src/modules/finance/finance.service.test.ts","backend/src/modules/geo-analytics/geo-analytics.service.test.ts","backend/src/modules/geo-fences/geo-fences.service.test.ts","backend/src/modules/geo-keywords/geo-keyword.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.test.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.test.ts","backend/src/modules/hr/positions/positions.service.test.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.test.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.test.ts","backend/src/modules/livestream-products/livestream-product.service.test.ts","backend/src/modules/livestream-rooms/livestream-room.service.test.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.test.ts","backend/src/modules/livestream-scripts/livestream-script.service.test.ts","backend/src/modules/marketing-calendar/marketing-calendar.service.test.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.test.ts","backend/src/modules/marketing-matrix/matrix.service.test.ts","backend/src/modules/mdm/mdm.service.test.ts","backend/src/modules/menus/menu.service.test.ts","backend/src/modules/multi-touch-attribution/multi-touch-attribution.service.test.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.test.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.test.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.test.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.test.ts","backend/src/modules/reports/report.service.test.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.test.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.test.ts","backend/src/modules/self-operated-store/self-operated-store.service.test.ts","backend/src/modules/social-accounts/social-account.service.test.ts","backend/src/modules/social-auto-replies/social-auto-reply.service.test.ts","backend/src/modules/social-posts/social-post.service.test.ts","backend/src/modules/store-agency/store-agency.service.test.ts","backend/src/modules/suppliers/supplier.service.test.ts","backend/src/modules/video-calls/video-call.service.test.ts","backend/src/shared/middleware/__tests__/security-fixes.test.ts","backend/src/shared/middleware/field-encryption.middleware.ts","backend/src/shared/middleware/rate-limit.middleware.ts","backend/src/shared/services/__tests__/audit-log.service.test.ts","backend/src/shared/services/__tests__/custom-fields.service.test.ts","backend/src/shared/services/__tests__/dynamic-state-machine.service.test.ts","backend/src/shared/services/__tests__/list-cache.service.test.ts","backend/src/shared/services/__tests__/llm-gateway.service.test.ts","backend/src/shared/services/__tests__/prompt-registry.service.test.ts","backend/src/shared/services/abac-policy.service.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/services/custom-fields.service.ts","backend/src/shared/services/dynamic-state-machine.service.ts","backend/src/shared/services/field-encryption.service.ts","backend/src/shared/services/immutable-audit.service.ts","backend/src/shared/services/llm-gateway.service.ts","backend/src/shared/services/materialized-view.service.ts","backend/src/shared/services/prompt-registry.service.ts","backend/src/shared/services/rag-pipeline.service.ts","backend/src/shared/utils/__tests__/permission-normalizer.test.ts","backend/src/shared/utils/__tests__/validation-security.test.ts","backend/src/shared/utils/permission-normalizer.ts","deploy/clickhouse/config.xml","deploy/clickhouse/init.sql","deploy/debezium/register-connector.json","deploy/tempo/config.yaml","docker-compose.analytics.yml","docs/test-plan/TEST-PLAN.md","docs/user-manual/convert-tech-manual.mjs","docs/user-manual/convert-to-html.mjs","docs/user-manual/screenshots/01-login-2026-03-23T00-12-58-197Z.png","docs/user-manual/screenshots/02-dashboard-2026-03-23T00-13-11-223Z.png","docs/user-manual/screenshots/03-ai-agents-2026-03-23T00-13-44-706Z.png","docs/user-manual/screenshots/04-leads-2026-03-23T00-13-49-733Z.png","docs/user-manual/screenshots/05-lead-qualification-2026-03-23T00-13-55-424Z.png","docs/user-manual/screenshots/06-content-library-2026-03-23T00-14-01-180Z.png","docs/user-manual/screenshots/07-campaigns-2026-03-23T00-14-06-696Z.png","docs/user-manual/screenshots/08-opportunities-2026-03-23T00-14-12-799Z.png","docs/user-manual/screenshots/09-quotes-2026-03-23T00-14-20-564Z.png","docs/user-manual/screenshots/10-contracts-2026-03-23T00-14-26-796Z.png","docs/user-manual/screenshots/11-orders-2026-03-23T00-14-32-331Z.png","docs/user-manual/screenshots/12-stores-2026-03-23T00-14-37-745Z.png","docs/user-manual/screenshots/13-tickets-2026-03-23T00-14-43-846Z.png","docs/user-manual/screenshots/14-sla-2026-03-23T00-14-49-340Z.png","docs/user-manual/screenshots/15-ar-ledger-2026-03-23T00-14-54-842Z.png","docs/user-manual/screenshots/16-payments-2026-03-23T00-14-59-958Z.png","docs/user-manual/screenshots/17-purchase-orders-2026-03-23T00-15-06-034Z.png","docs/user-manual/screenshots/19-products-2026-03-23T00-15-17-479Z.png","docs/user-manual/screenshots/20-knowledge-2026-03-23T00-15-24-044Z.png","docs/user-manual/screenshots/21-approvals-2026-03-23T00-15-30-115Z.png","docs/user-manual/screenshots/22-hr-attendance-2026-03-23T00-15-36-643Z.png","docs/user-manual/screenshots/23-tenant-configs-2026-03-23T00-15-42-739Z.png","docs/user-manual/screenshots/25-roles-2026-03-23T00-15-56-801Z.png","docs/user-manual/screenshots/26-customers-2026-03-23T00-16-02-467Z.png","docs/user-manual/screenshots/27-im-2026-03-23T00-16-07-704Z.png","docs/user-manual/screenshots/tech-01-api-docs-2026-03-23T00-30-33-332Z.png","docs/user-manual/screenshots/tech-02-system-monitor-2026-03-23T00-30-42-759Z.png","docs/user-manual/screenshots/tech-03-event-logs-fix-2026-03-23T01-07-06-085Z.png","docs/user-manual/screenshots/tech-04-scheduled-jobs-2026-03-23T00-31-01-868Z.png","docs/user-manual/screenshots/tech-05-process-designer-2026-03-23T00-31-11-126Z.png","docs/user-manual/screenshots/tech-06-operation-logs-2026-03-23T00-31-20-335Z.png","docs/user-manual/screenshots/tech-07-settings-fix-2026-03-23T01-04-46-329Z.png","docs/user-manual/screenshots/tech-08-notification-configs-2026-03-23T00-31-38-845Z.png","docs/user-manual/technical-manual-content.md","docs/user-manual/technical-manual.html","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","docs/user-manual/巨嗨全域智库-技术开发手册-v1.0.pdf","docs/user-manual/巨嗨全域智库-用户使用手册-v1.0.pdf","e2e/QUARANTINE.md","e2e/playwright-report/data/0841239e09a180630fc75a988c85edb7d05739ad.md","e2e/playwright-report/data/db1fc0403d7c6af356a063a72ff6b4161a90d53a.png","e2e/test-results/.playwright-artifacts-240/040dee8f334f6c93fa788311a8961dae.png","e2e/test-results/.playwright-artifacts-240/058f808b72bfb61b392c5078d5509418.png","e2e/test-results/.playwright-artifacts-240/0893f4c2a4a7c014d48a306a37a5dc6f.png","e2e/test-results/.playwright-artifacts-240/1bd44c2c27b13a8e4e20754676e16753.png","e2e/test-results/.playwright-artifacts-240/202267e939ad0f07474e283188a20e7d.png","e2e/test-results/.playwright-artifacts-240/2643239379fd7e6fb2b3af6dacebc4fa.png","e2e/test-results/.playwright-artifacts-240/275d5fde4f54663504fbe6b3e84548d3.png","e2e/test-results/.playwright-artifacts-240/42867d3c5c17db159677472c69e89621.png","e2e/test-results/.playwright-artifacts-240/437c27fb2bacac72655c93b0b195c12b.png","e2e/test-results/.playwright-artifacts-240/4e1e7cc1649f584e86226ca11178f09d.png","e2e/test-results/.playwright-artifacts-240/505ec08f78c1ac4cfbd5a64a3e01ec29.png","e2e/test-results/.playwright-artifacts-240/50ad9cd6f3585ecf685f91c233f1100f.png","e2e/test-results/.playwright-artifacts-240/56d48ae872fca36631d1f464243747be.png","e2e/test-results/.playwright-artifacts-240/5be73b706dafcc86885ef501dccd65f9.png","e2e/test-results/.playwright-artifacts-240/61a48f54c74157d08f79a5c7638a2c75.png","e2e/test-results/.playwright-artifacts-240/67cbfdd34817fa76173eda99da253422.png","e2e/test-results/.playwright-artifacts-240/6de31eb46d49679d37fcb85e09bf50a7.png","e2e/test-results/.playwright-artifacts-240/719cc5c2833983e26d2e26fb6ecd1410.png","e2e/test-results/.playwright-artifacts-240/765d23b2babbdc342a5e33cda8d39a87.png","e2e/test-results/.playwright-artifacts-240/7f1c5b28525ac2cc41bc099e6f749ab3.png","e2e/test-results/.playwright-artifacts-240/800d3474ffbcfb84327a4cff203da5ab.png","e2e/test-results/.playwright-artifacts-240/82e93cc1f0a93cda9a36e89ffa14b831.png","e2e/test-results/.playwright-artifacts-240/834a6d7b46250bf3a7b6c74804572593.png","e2e/test-results/.playwright-artifacts-240/86a3a201ece1b35521f5b7cb565876c1.png","e2e/test-results/.playwright-artifacts-240/8ab300257837e88962f2a6b7027e13a0.png","e2e/test-results/.playwright-artifacts-240/941e36d46c2caceb2ea0fc70bed6bba5.png","e2e/test-results/.playwright-artifacts-240/9e77802004f48f7c693bc508c5d8d39b.png","e2e/test-results/.playwright-artifacts-240/a0e310742c0a3c96a02bdf2c7db7dfb2.png","e2e/test-results/.playwright-artifacts-240/c4f6a23e9cd556d8fa7d69f40bc122ac.png","e2e/test-results/.playwright-artifacts-240/c51c980a067ead90c72ee084ad8fc00a.png","e2e/test-results/.playwright-artifacts-240/d74a4495418c027fb3e4b838b4aa3521.png","e2e/test-results/.playwright-artifacts-240/dace6040beafd8d86a5baf4fe5f1ae2a.png","e2e/test-results/.playwright-artifacts-240/dce6caafe2e1fcdac2ee738369ed6098.png","e2e/test-results/.playwright-artifacts-240/df5df0fd3c83d8265e719acb6b3d0ee6.png","e2e/test-results/.playwright-artifacts-240/e07d7068d011403eeb553914cb5c364e.png","e2e/test-results/.playwright-artifacts-240/e5e82b734579c829a5939d96fcc05dff.png","e2e/test-results/.playwright-artifacts-240/e8cb101c527d05e5df6ca5fc2b904583.png","e2e/test-results/.playwright-artifacts-240/eaff6d849895b87797832af1a9a24d65.png","e2e/test-results/.playwright-artifacts-240/f0ff9429d9c71385cff328a94e1a703c.png","e2e/test-results/.playwright-artifacts-240/fba7d655d78e525212c958c6c2a7227d.png","e2e/test-results/.playwright-artifacts-241/094966347a6999bd858f5ab8a249f754.png","e2e/test-results/.playwright-artifacts-241/0b6068733b160e988728b3140bdbaef5.png","e2e/test-results/.playwright-artifacts-241/1bb8fb49ed8335c1df210ed0bbe9493c.png","e2e/test-results/.playwright-artifacts-241/1dc0352fb049eb5707b5ecdeb36e7588.png","e2e/test-results/.playwright-artifacts-241/248c7bde5073b7b22bc5737b59012f68.png","e2e/test-results/.playwright-artifacts-241/26e9b207b71a36018b2252efb70c0366.png","e2e/test-results/.playwright-artifacts-241/2ae009986a6d6b9b348e715140f0e05f.png","e2e/test-results/.playwright-artifacts-241/2e7643de8fce869a4dc6701b06f92045.png","e2e/test-results/.playwright-artifacts-241/34681405d2abf88b9b47e450f48ecaa3.png","e2e/test-results/.playwright-artifacts-241/45be60ad912dd46dfb7aa5cbee9f02d0.png","e2e/test-results/.playwright-artifacts-241/5bb07c90a274dac44963d8cceca8eb1e.png","e2e/test-results/.playwright-artifacts-241/5c81aa46578a6e4a399dcdf0d73ba8d3.png","e2e/test-results/.playwright-artifacts-241/643d257ac5cf926a92dfd4e67907a9dc.png","e2e/test-results/.playwright-artifacts-241/6454481b50c1adc6bc7e94d3fb946915.png","e2e/test-results/.playwright-artifacts-241/67232c5e7156aba881fa65d80af1207b.png","e2e/test-results/.playwright-artifacts-241/67d9026a171dc55ffc861a72ce9d4b2c.png","e2e/test-results/.playwright-artifacts-241/714aeb4c6b5950f311af88662c8b4424.png","e2e/test-results/.playwright-artifacts-241/7a8af77cb2620429282f057b7c7fd0ae.png","e2e/test-results/.playwright-artifacts-241/922282efa032ca16073c502056c2826f.png","e2e/test-results/.playwright-artifacts-241/9543fc36ad8580206d7a961590a7d83d.png","e2e/test-results/.playwright-artifacts-241/9c77f778e3b32c88fe3524c93a150de1.png","e2e/test-results/.playwright-artifacts-241/9c8a27ce50fdd70f043debd37db84261.png","e2e/test-results/.playwright-artifacts-241/9ce478697576abf803f23864fd3d01c7.png","e2e/test-results/.playwright-artifacts-241/a9df789309206957d3696bd33d4752b7.png","e2e/test-results/.playwright-artifacts-241/b16f350537ed50e46405ecd91275e9f4.png","e2e/test-results/.playwright-artifacts-241/b213a106fbdfe86fe5a2e40fd333aa0c.png","e2e/test-results/.playwright-artifacts-241/b82911d04e9ad9e3893351a21a56b011.png","e2e/test-results/.playwright-artifacts-241/b94da2213274548a93d16676dea24087.png","e2e/test-results/.playwright-artifacts-241/b98a93160e626ed6e3b05e7e527192fa.png","e2e/test-results/.playwright-artifacts-241/c2f7e527724d7e5eb8d379e3fbfc1b83.png","e2e/test-results/.playwright-artifacts-241/c800d08cc104e95000629104c11fd8b3.png","e2e/test-results/.playwright-artifacts-241/cd36bb67c1c05fedeac1923b06e6d4f5.png","e2e/test-results/.playwright-artifacts-241/d2ebbb7e8ca084380958c49f40f1bcac.png","e2e/test-results/.playwright-artifacts-241/d6ef796cc1833026cab7434b435084f4.png","e2e/test-results/.playwright-artifacts-241/dc49bd3538e061f12e7b17709d6bba0d.png","e2e/test-results/.playwright-artifacts-241/e014d348f300176842a83787a7f7938c.png","e2e/test-results/.playwright-artifacts-241/e8b738bc9925b35cacb65db8fd37bd27.png","e2e/test-results/.playwright-artifacts-241/ed833f2d058e02081a433bb71c5c71ca.png","e2e/test-results/.playwright-artifacts-241/f42b7455348166022fb51732079f16a2.png","e2e/test-results/.playwright-artifacts-241/f7ffcca2f8bd695dbd421e83dfd7dacb.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b88a-矩阵-module-resource-requests-chromium/attachments/probe-P01-828a9fe4a1cc10ad814b8901ea3f331dabb4f466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1445f--创建成功-module-admin-settings-chromium/attachments/probe-C01-b70ed60761f6c844c0724c90be9bd3a2e28f887e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-159b4-失败-module-resource-requests-chromium/attachments/probe-C02-579660baa87709a7140145510b380b58f4afc555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1a1ae--用户管理-P01-权限矩阵-module-users-chromium/attachments/probe-P01-21d61422e262180992f04fed0d6e1f58f4f8928a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ad44--异常恢复-module-admin-settings-chromium/attachments/probe-E01-167118b9260fa76b0a2a1f0fa96675e800dc6f74.json","e2e/test-results/crud-00-crud-runner-CRUD-严-20309-异常恢复-module-stage-knowledge-chromium/attachments/probe-E01-65c2d06fb134d7cb9f3931a7131cf0260ea97061.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22f29-理-D02-恢复或不可见校验-module-roles-chromium/attachments/probe-D02-d26e2d296f3e8407ccfd9c2cc2f24cf6829a8508.json","e2e/test-results/crud-00-crud-runner-CRUD-严-239e9-验-module-knowledge-feedback-chromium/attachments/probe-D02-e58bb6a96915688b8f2287bbb25bab2388293c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ba01-更新成功-module-stage-knowledge-chromium/attachments/probe-U01-208017e0ddf654dcec7c7e6ed78e75cdbcaeefe5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c5eb-建校验失败-module-admin-settings-chromium/attachments/probe-C02-c917accda05528170401af83fb11a330a3cbda4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34d7b-可见校验-module-stage-knowledge-chromium/attachments/probe-D02-821275ce5a1a2d3c0299a4438bc0551a6d53176c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34f0e--更新成功-module-admin-settings-chromium/attachments/probe-U01-f4a4e93fb88c2ef19abde8f7dd664879de695c9f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-365ba--用户管理-C01-创建成功-module-users-chromium/attachments/probe-C01-900190bda813dce7a5e62caaa492f5a3677f3e23.json","e2e/test-results/crud-00-crud-runner-CRUD-严-392a1--im-即时通讯-E01-异常恢复-module-im-chromium/attachments/probe-E01-fa3a07d4be5ae62afd985ab459bbd15a33a2fdef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a38c--D01-删除-软-硬-可用-module-roles-chromium/attachments/probe-D01-ae5282c3a94d95edce6b6b614e0f1c7bb0cacec0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4220e--角色管理-P01-权限矩阵-module-roles-chromium/attachments/probe-P01-bf40ed0eb839caf8e2dc359b3fbf41adc61a8186.json","e2e/test-results/crud-00-crud-runner-CRUD-严-43344-校验失败-module-stage-knowledge-chromium/attachments/probe-C02-c40333d9c899532c29747a98c3608a229f081c35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-460f0-户管理-C02-创建校验失败-module-users-chromium/attachments/probe-C02-793ed6868532d6f08fa3b7e01ef91cee883edc62.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b07d--可用-module-process-designer-chromium/attachments/probe-D01-acbfe0f811bb517717a6b841a585892cbebff24c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4f5-可用-module-resource-requests-chromium/attachments/probe-D01-2e8e53337f638a07ab7cc317baa3d97366c245e0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7f3--im-即时通讯-P01-权限矩阵-module-im-chromium/attachments/probe-P01-b22bb94be6b4cf1a140ec1c9f11b2ce4b3ea633f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52d8f-校验-module-resource-requests-chromium/attachments/probe-D02-dbcf98c1134a088b83217a812d0c0a8650ac69a3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-538f0-色管理-C02-创建校验失败-module-roles-chromium/attachments/probe-C02-2f4ee0aa5a1a7bf30860781b2ab8e052c752a87c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-60bbd-管理-U02-更新权限-冲突-module-roles-chromium/attachments/probe-U02-0531249436aff73c81d0fc89355c4cbc7167ec8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bff7-理-D02-恢复或不可见校验-module-users-chromium/attachments/probe-D02-cfa483afa2a0dcba0b625f169d4ddfd4df7815e9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6d194-见校验-module-process-designer-chromium/attachments/probe-D02-ace63a12d5911b8f54a54b89d94362c9b7276535.json","e2e/test-results/crud-00-crud-runner-CRUD-严-72cf4--角色管理-U01-更新成功-module-roles-chromium/attachments/probe-U01-daf71b632d68b74b441594222818913f9937bd60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-77ec5-创建成功-module-stage-knowledge-chromium/attachments/probe-C01-073ec52dcaf122cc92ed77c881d6407f63e053ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f7f1--列表可读-module-admin-settings-chromium/attachments/probe-R01-1b19c02416b08eebec04e254505821f27bda570e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89494--冲突-module-process-designer-chromium/attachments/probe-U02-57053c2bcdfde404efd732026ff7bbb7c2a742c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89599-冲突-module-resource-requests-chromium/attachments/probe-U02-3bbd6461e4141361d2910d0d997a2174989df606.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d2e4-硬-可用-module-stage-knowledge-chromium/attachments/probe-D01-bcca5204eae3c340bcf2e5d455dde9e35cc10053.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8fa15-复-module-knowledge-feedback-chromium/attachments/probe-E01-768d744b990df78d05147237c0636c4ee771c1ed.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9d5c3-新成功-module-process-designer-chromium/attachments/probe-U01-b82cb3f43ec5fd03fbcf5e9a47076d4b327698f7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a99bb-m-即时通讯-C02-创建校验失败-module-im-chromium/attachments/probe-C02-fd074e16ad7f94b54706d083613b4b5d32b93e4b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4daf--权限矩阵-module-admin-settings-chromium/attachments/probe-P01-d0080ae80a82c103bcd848bca31d749b3dcc8352.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b8549-成功-module-resource-requests-chromium/attachments/probe-U01-ca13f11ed3d09b5def3fe7e441ad40110d2b0379.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4557--用户管理-U01-更新成功-module-users-chromium/attachments/probe-U01-712df3b828fbaea6fc759167308e86fa7855176f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c39-恢复-module-resource-requests-chromium/attachments/probe-E01-e9b591e744c63185541a625ceba5e5d973b6746b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c7867--角色管理-C01-创建成功-module-roles-chromium/attachments/probe-C01-7a7d119a902c3f458539ddaa114898e0a33f4d8f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc828--即时通讯-U02-更新权限-冲突-module-im-chromium/attachments/probe-U02-76760ce7a07288e361d11e3be6c77b61b817ee40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce2ac--详情可读-module-admin-settings-chromium/attachments/probe-R03-cea057b72b957fdb65cc5e3b674bfa2f05636e5e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d14d4--用户管理-E01-异常恢复-module-users-chromium/attachments/probe-E01-6169c2a0eaab0a87b4892d56e1c64902f64e0217.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3762-限-冲突-module-stage-knowledge-chromium/attachments/probe-U02-9e395cc67c38073bfd6eb6ad38fe5ac43a337d56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d6fb4-常恢复-module-process-designer-chromium/attachments/probe-E01-b1f8e178d5a774eddb298c119317b36e0414d60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de878--角色管理-E01-异常恢复-module-roles-chromium/attachments/probe-E01-bb017dd97b92cb05f37191c933e038af13a8c04a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e43a6-限矩阵-module-process-designer-chromium/attachments/probe-P01-e9df19eeca43b46dca36a135566329b6da44cacd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e4560-管理-U02-更新权限-冲突-module-users-chromium/attachments/probe-U02-a105db3f1ef20b6b8ba0ed401d244b376932736b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ea129-阵-module-knowledge-feedback-chromium/attachments/probe-P01-c3160dc84a9d7fea219587cb594dd8add36d515d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec3b8-验失败-module-process-designer-chromium/attachments/probe-C02-dae6185bd96e2e2c88c4bb9104517a939b2afb15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed28f-权限矩阵-module-stage-knowledge-chromium/attachments/probe-P01-703da6de6b8031b653cf5cb16f3656f251917838.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee943-成功-module-resource-requests-chromium/attachments/probe-C01-96dc059a7597ae051b9d321db1cb4b470806e6f4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eee91-用-module-knowledge-feedback-chromium/attachments/probe-D01-43d0c2e97c66fbd3301826ea68d66fce62cb7eb0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f3c4d-询筛选分页-module-admin-settings-chromium/attachments/probe-R02-55334ddef6735b6dddfc2d2e6143a089efb9be24.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f690b--D01-删除-软-硬-可用-module-users-chromium/attachments/probe-D01-6438fdd0fae658cd354e2761efa5b0065ab74607.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fabfb-建成功-module-process-designer-chromium/attachments/probe-C01-65e7119661d41d890e1f8d734662a8ce3b15268c.json","e2e/test-results/crud/probes/admin-settings-C01-1774228943803.json","e2e/test-results/crud/probes/admin-settings-C02-1774228945689.json","e2e/test-results/crud/probes/admin-settings-E01-1774228954200.json","e2e/test-results/crud/probes/admin-settings-P01-1774228952357.json","e2e/test-results/crud/probes/admin-settings-R01-1774228946846.json","e2e/test-results/crud/probes/admin-settings-R02-1774228948718.json","e2e/test-results/crud/probes/admin-settings-R03-1774228950565.json","e2e/test-results/crud/probes/admin-settings-U01-1774228956047.json","e2e/test-results/crud/probes/im-C02-1774228926548.json","e2e/test-results/crud/probes/im-E01-1774228936351.json","e2e/test-results/crud/probes/im-P01-1774228934107.json","e2e/test-results/crud/probes/im-U02-1774228939732.json","e2e/test-results/crud/probes/knowledge-feedback-D01-1774228819428.json","e2e/test-results/crud/probes/knowledge-feedback-D02-1774228821536.json","e2e/test-results/crud/probes/knowledge-feedback-E01-1774228817921.json","e2e/test-results/crud/probes/knowledge-feedback-P01-1774228815781.json","e2e/test-results/crud/probes/process-designer-C01-1774228822742.json","e2e/test-results/crud/probes/process-designer-C02-1774228824586.json","e2e/test-results/crud/probes/process-designer-D01-1774228839637.json","e2e/test-results/crud/probes/process-designer-D02-1774228841175.json","e2e/test-results/crud/probes/process-designer-E01-1774228834388.json","e2e/test-results/crud/probes/process-designer-P01-1774228832112.json","e2e/test-results/crud/probes/process-designer-U01-1774228835867.json","e2e/test-results/crud/probes/process-designer-U02-1774228837789.json","e2e/test-results/crud/probes/resource-requests-C01-1774228842926.json","e2e/test-results/crud/probes/resource-requests-C02-1774228844702.json","e2e/test-results/crud/probes/resource-requests-D01-1774228859373.json","e2e/test-results/crud/probes/resource-requests-D02-1774228861489.json","e2e/test-results/crud/probes/resource-requests-E01-1774228854515.json","e2e/test-results/crud/probes/resource-requests-P01-1774228852276.json","e2e/test-results/crud/probes/resource-requests-U01-1774228855843.json","e2e/test-results/crud/probes/resource-requests-U02-1774228857762.json","e2e/test-results/crud/probes/roles-C01-1774228862700.json","e2e/test-results/crud/probes/roles-C02-1774228864549.json","e2e/test-results/crud/probes/roles-D01-1774228879608.json","e2e/test-results/crud/probes/roles-D02-1774228881181.json","e2e/test-results/crud/probes/roles-E01-1774228874266.json","e2e/test-results/crud/probes/roles-P01-1774228872022.json","e2e/test-results/crud/probes/roles-U01-1774228875744.json","e2e/test-results/crud/probes/roles-U02-1774228877671.json","e2e/test-results/crud/probes/stage-knowledge-C01-1774228882938.json","e2e/test-results/crud/probes/stage-knowledge-C02-1774228884716.json","e2e/test-results/crud/probes/stage-knowledge-D01-1774228900165.json","e2e/test-results/crud/probes/stage-knowledge-D02-1774228901711.json","e2e/test-results/crud/probes/stage-knowledge-E01-1774228894714.json","e2e/test-results/crud/probes/stage-knowledge-P01-1774228892441.json","e2e/test-results/crud/probes/stage-knowledge-U01-1774228896206.json","e2e/test-results/crud/probes/stage-knowledge-U02-1774228898148.json","e2e/test-results/crud/probes/users-C01-1774228903774.json","e2e/test-results/crud/probes/users-C02-1774228905307.json","e2e/test-results/crud/probes/users-D01-1774228921548.json","e2e/test-results/crud/probes/users-D02-1774228923127.json","e2e/test-results/crud/probes/users-E01-1774228915372.json","e2e/test-results/crud/probes/users-P01-1774228913142.json","e2e/test-results/crud/probes/users-U01-1774228917209.json","e2e/test-results/crud/probes/users-U02-1774228919166.json","e2e/tests/quarantine/.gitkeep","frontend/src/composables/__tests__/useApiQuery.test.ts","frontend/src/router/modules/acquisition.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/router/modules/compat-redirects.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/dashboard.ts","frontend/src/router/modules/finance.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/marketing.ts","frontend/src/router/modules/sales.ts","frontend/src/router/modules/service.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/router/modules/system.ts","frontend/src/stores/__tests__/app.store.test.ts","frontend/src/stores/__tests__/im.store.test.ts","frontend/src/stores/__tests__/knowledge.store.test.ts","frontend/src/styles/_containers.scss","frontend/src/styles/layers.css","frontend/src/utils/echarts.ts"],"removed":["e2e/test-results/results.json"],"modified":[".github/workflows/ci.yml","backend/.env.example","backend/package.json","backend/scripts/audit-prisma-zod-contract.ts","backend/scripts/generate-rls-policies.ts","backend/src/config/env.ts","backend/src/config/kafka.ts","backend/src/consumers/__tests__/sales.consumer.test.ts","backend/src/main.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.test.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/campaigns/campaign.service.enhanced.test.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.test.ts","backend/src/modules/channels/channel.schema.test.ts","backend/src/modules/community-gamification/community-gamification.service.test.ts","backend/src/modules/community-materials/community-material.service.test.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/content-analytics/content-analytics.service.test.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customer-analytics/customer-analytics.service.test.ts","backend/src/modules/customer-balance/customer-balance.service.test.ts","backend/src/modules/financial-reports/financial-reports.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.test.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.test.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.test.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.test.ts","backend/src/modules/im/websocket/gateway.ts","backend/src/modules/im/websocket/health.ts","backend/src/modules/im/websocket/redis-adapter.ts","backend/src/modules/integration-services/integration-service.service.test.ts","backend/src/modules/lead-qualification/qualification.service.test.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.test.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.test.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/livestream/livestream.service.test.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.test.ts","backend/src/modules/marketing-content/marketing-content.service.test.ts","backend/src/modules/marketing-forms/marketing-form.service.test.ts","backend/src/modules/marketing-north-star/marketing-north-star.service.test.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.test.ts","backend/src/modules/marketing/marketing.service.test.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-statement.service.ts","backend/src/modules/pm/pm.service.test.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/quotes/quote-decompose.service.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/rma/rma.service.test.ts","backend/src/modules/sample-requests/sample-request.service.test.ts","backend/src/modules/serial-numbers/sn.service.test.ts","backend/src/modules/sms-marketing/sms-marketing.service.test.ts","backend/src/modules/social-interactions/social-interactions.service.test.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/services/__tests__/outbox-processor.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/src/shared/state-machines/__tests__/ai-task.machine.test.ts","backend/src/shared/state-machines/__tests__/contract.machine.test.ts","backend/src/shared/utils/biz-code.test.ts","backend/src/shared/utils/crud.ts","backend/tests/unit/process-core/workflow-e2e.test.ts","backend/tests/unit/services/lead.service.test.ts","backend/tests/unit/services/quote.service.test.ts","deploy/grafana/provisioning/datasources/datasources.yml","docker-compose.prod.yml","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/playwright.config.ts","e2e/test-results/.last-run.json","frontend/package.json","frontend/src/components/common/DataTable.vue","frontend/src/components/responsive/ResponsiveChart.vue","frontend/src/main.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/supplemental.ts","frontend/src/stores/auth.ts","frontend/src/styles/index.scss","frontend/src/views/ai-agents/autopilot/AITestCases.vue","frontend/src/views/ai-agents/components/AgentModelManager.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/campaigns/analytics/index.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/FunnelChart.vue","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/inventory/Analytics.vue","frontend/src/views/knowledge/components/KnowledgeGraph.vue","frontend/src/views/service-dashboard/components/SLAPanel.vue","frontend/src/views/service-dashboard/components/SatisfactionPanel.vue","frontend/src/views/service-dashboard/components/TicketStatsPanel.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/vite.config.ts","pnpm-lock.yaml"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1919936,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:52:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
18
|
1774229096
|
1774229182
|
0
|
1774229062
|
1774229561
|
|
|
0
|
Edit
Delete
|
|
7291
|
chore: comprehensive governance updates and test a chore: comprehensive governance updates and test artifacts...
|
6
|
5
|
deploy.yml
|
7217
|
5
|
0
|
refs/heads/main
|
339ea969ec2633756fb1a155d47723d0f61396a4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","after":"339ea969ec2633756fb1a155d47723d0f61396a4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/df7b6f46170cb46db4771dd1e07991b0b13d90a0...339ea969ec2633756fb1a155d47723d0f61396a4","commits":[{"id":"339ea969ec2633756fb1a155d47723d0f61396a4","message":"chore: comprehensive governance updates and test artifacts\n\n- Add Prisma schema modularization and migration scripts\n- Add service test coverage across all modules (AI, alliance, community, marketing, etc.)\n- Add shared services (cache, custom-fields, dynamic-state-machine, encryption, etc.)\n- Add infrastructure configs (ClickHouse, Debezium, Tempo)\n- Add user manual and technical documentation with screenshots\n- Add router module organization for all centers\n- Add store/test coverage and Playwright artifacts\n- Update CI workflow, environment configs, and dependencies\n- Fix security issues in auth, kafka, and validation layers\n- Fix permission naming tests to expect kebab-case output\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/339ea969ec2633756fb1a155d47723d0f61396a4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T09:22:37+08:00","added":["backend/prisma/migrations/manual/create_dynamic_sm_and_custom_fields.sql","backend/prisma/migrations/manual/create_knowledge_embeddings.sql","backend/prisma/migrations/materialized_views.sql","backend/prisma/schema/_base.prisma","backend/prisma/schema/_enums.prisma","backend/prisma/schema/ai.prisma","backend/prisma/schema/alliance.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/customers.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/geo.prisma","backend/prisma/schema/hr.prisma","backend/prisma/schema/im.prisma","backend/prisma/schema/knowledge.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/livestream.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/products.prisma","backend/prisma/schema/project.prisma","backend/prisma/schema/renewals.prisma","backend/prisma/schema/sales.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/social.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/config/__tests__/kafka-router.test.ts","backend/src/config/tracing.ts","backend/src/modules/ai-copilot/ai-copilot.service.test.ts","backend/src/modules/alliance-analytics/alliance-analytics.service.test.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.test.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-products/alliance-product.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.test.ts","backend/src/modules/alliance-referrals/alliance-referral.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/approval-templates/approval-template.service.test.ts","backend/src/modules/campaign-targets/campaign-target.service.test.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.test.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.test.ts","backend/src/modules/community-activities/community-activity.service.test.ts","backend/src/modules/community-analytics/community-analytics.service.test.ts","backend/src/modules/community-fission/community-fission.service.test.ts","backend/src/modules/community-groups/community-group.service.test.ts","backend/src/modules/community-members/community-member.service.test.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.test.ts","backend/src/modules/content-categories/content-category.service.test.ts","backend/src/modules/content-copyright/content-copyright.service.test.ts","backend/src/modules/content-creation/content-creation.service.test.ts","backend/src/modules/content-distribution/content-distribution.service.test.ts","backend/src/modules/content-library/content-library.service.test.ts","backend/src/modules/content-review/content-review.service.test.ts","backend/src/modules/content-templates/content-template.service.test.ts","backend/src/modules/contract-templates/contract-template.service.test.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.test.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.test.ts","backend/src/modules/customer-journey/customer-journey.service.test.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.test.ts","backend/src/modules/customer-ltv/customer-ltv.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.test.ts","backend/src/modules/dimension-transform/dimension-transform.service.test.ts","backend/src/modules/disbursements/disbursement-record.service.test.ts","backend/src/modules/events/event.service.test.ts","backend/src/modules/finance/finance-credits.service.test.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-refunds.service.test.ts","backend/src/modules/finance/finance.service.test.ts","backend/src/modules/geo-analytics/geo-analytics.service.test.ts","backend/src/modules/geo-fences/geo-fences.service.test.ts","backend/src/modules/geo-keywords/geo-keyword.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.test.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.test.ts","backend/src/modules/hr/positions/positions.service.test.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.test.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.test.ts","backend/src/modules/livestream-products/livestream-product.service.test.ts","backend/src/modules/livestream-rooms/livestream-room.service.test.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.test.ts","backend/src/modules/livestream-scripts/livestream-script.service.test.ts","backend/src/modules/marketing-calendar/marketing-calendar.service.test.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.test.ts","backend/src/modules/marketing-matrix/matrix.service.test.ts","backend/src/modules/mdm/mdm.service.test.ts","backend/src/modules/menus/menu.service.test.ts","backend/src/modules/multi-touch-attribution/multi-touch-attribution.service.test.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.test.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.test.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.test.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.test.ts","backend/src/modules/reports/report.service.test.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.test.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.test.ts","backend/src/modules/self-operated-store/self-operated-store.service.test.ts","backend/src/modules/social-accounts/social-account.service.test.ts","backend/src/modules/social-auto-replies/social-auto-reply.service.test.ts","backend/src/modules/social-posts/social-post.service.test.ts","backend/src/modules/store-agency/store-agency.service.test.ts","backend/src/modules/suppliers/supplier.service.test.ts","backend/src/modules/video-calls/video-call.service.test.ts","backend/src/shared/middleware/__tests__/security-fixes.test.ts","backend/src/shared/middleware/field-encryption.middleware.ts","backend/src/shared/middleware/rate-limit.middleware.ts","backend/src/shared/services/__tests__/audit-log.service.test.ts","backend/src/shared/services/__tests__/custom-fields.service.test.ts","backend/src/shared/services/__tests__/dynamic-state-machine.service.test.ts","backend/src/shared/services/__tests__/list-cache.service.test.ts","backend/src/shared/services/__tests__/llm-gateway.service.test.ts","backend/src/shared/services/__tests__/prompt-registry.service.test.ts","backend/src/shared/services/abac-policy.service.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/services/custom-fields.service.ts","backend/src/shared/services/dynamic-state-machine.service.ts","backend/src/shared/services/field-encryption.service.ts","backend/src/shared/services/immutable-audit.service.ts","backend/src/shared/services/llm-gateway.service.ts","backend/src/shared/services/materialized-view.service.ts","backend/src/shared/services/prompt-registry.service.ts","backend/src/shared/services/rag-pipeline.service.ts","backend/src/shared/utils/__tests__/permission-normalizer.test.ts","backend/src/shared/utils/__tests__/validation-security.test.ts","backend/src/shared/utils/permission-normalizer.ts","deploy/clickhouse/config.xml","deploy/clickhouse/init.sql","deploy/debezium/register-connector.json","deploy/tempo/config.yaml","docker-compose.analytics.yml","docs/test-plan/TEST-PLAN.md","docs/user-manual/convert-tech-manual.mjs","docs/user-manual/convert-to-html.mjs","docs/user-manual/screenshots/01-login-2026-03-23T00-12-58-197Z.png","docs/user-manual/screenshots/02-dashboard-2026-03-23T00-13-11-223Z.png","docs/user-manual/screenshots/03-ai-agents-2026-03-23T00-13-44-706Z.png","docs/user-manual/screenshots/04-leads-2026-03-23T00-13-49-733Z.png","docs/user-manual/screenshots/05-lead-qualification-2026-03-23T00-13-55-424Z.png","docs/user-manual/screenshots/06-content-library-2026-03-23T00-14-01-180Z.png","docs/user-manual/screenshots/07-campaigns-2026-03-23T00-14-06-696Z.png","docs/user-manual/screenshots/08-opportunities-2026-03-23T00-14-12-799Z.png","docs/user-manual/screenshots/09-quotes-2026-03-23T00-14-20-564Z.png","docs/user-manual/screenshots/10-contracts-2026-03-23T00-14-26-796Z.png","docs/user-manual/screenshots/11-orders-2026-03-23T00-14-32-331Z.png","docs/user-manual/screenshots/12-stores-2026-03-23T00-14-37-745Z.png","docs/user-manual/screenshots/13-tickets-2026-03-23T00-14-43-846Z.png","docs/user-manual/screenshots/14-sla-2026-03-23T00-14-49-340Z.png","docs/user-manual/screenshots/15-ar-ledger-2026-03-23T00-14-54-842Z.png","docs/user-manual/screenshots/16-payments-2026-03-23T00-14-59-958Z.png","docs/user-manual/screenshots/17-purchase-orders-2026-03-23T00-15-06-034Z.png","docs/user-manual/screenshots/19-products-2026-03-23T00-15-17-479Z.png","docs/user-manual/screenshots/20-knowledge-2026-03-23T00-15-24-044Z.png","docs/user-manual/screenshots/21-approvals-2026-03-23T00-15-30-115Z.png","docs/user-manual/screenshots/22-hr-attendance-2026-03-23T00-15-36-643Z.png","docs/user-manual/screenshots/23-tenant-configs-2026-03-23T00-15-42-739Z.png","docs/user-manual/screenshots/25-roles-2026-03-23T00-15-56-801Z.png","docs/user-manual/screenshots/26-customers-2026-03-23T00-16-02-467Z.png","docs/user-manual/screenshots/27-im-2026-03-23T00-16-07-704Z.png","docs/user-manual/screenshots/tech-01-api-docs-2026-03-23T00-30-33-332Z.png","docs/user-manual/screenshots/tech-02-system-monitor-2026-03-23T00-30-42-759Z.png","docs/user-manual/screenshots/tech-03-event-logs-fix-2026-03-23T01-07-06-085Z.png","docs/user-manual/screenshots/tech-04-scheduled-jobs-2026-03-23T00-31-01-868Z.png","docs/user-manual/screenshots/tech-05-process-designer-2026-03-23T00-31-11-126Z.png","docs/user-manual/screenshots/tech-06-operation-logs-2026-03-23T00-31-20-335Z.png","docs/user-manual/screenshots/tech-07-settings-fix-2026-03-23T01-04-46-329Z.png","docs/user-manual/screenshots/tech-08-notification-configs-2026-03-23T00-31-38-845Z.png","docs/user-manual/technical-manual-content.md","docs/user-manual/technical-manual.html","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","docs/user-manual/巨嗨全域智库-技术开发手册-v1.0.pdf","docs/user-manual/巨嗨全域智库-用户使用手册-v1.0.pdf","e2e/QUARANTINE.md","e2e/playwright-report/data/0841239e09a180630fc75a988c85edb7d05739ad.md","e2e/playwright-report/data/db1fc0403d7c6af356a063a72ff6b4161a90d53a.png","e2e/test-results/.playwright-artifacts-240/040dee8f334f6c93fa788311a8961dae.png","e2e/test-results/.playwright-artifacts-240/058f808b72bfb61b392c5078d5509418.png","e2e/test-results/.playwright-artifacts-240/0893f4c2a4a7c014d48a306a37a5dc6f.png","e2e/test-results/.playwright-artifacts-240/1bd44c2c27b13a8e4e20754676e16753.png","e2e/test-results/.playwright-artifacts-240/202267e939ad0f07474e283188a20e7d.png","e2e/test-results/.playwright-artifacts-240/2643239379fd7e6fb2b3af6dacebc4fa.png","e2e/test-results/.playwright-artifacts-240/275d5fde4f54663504fbe6b3e84548d3.png","e2e/test-results/.playwright-artifacts-240/42867d3c5c17db159677472c69e89621.png","e2e/test-results/.playwright-artifacts-240/437c27fb2bacac72655c93b0b195c12b.png","e2e/test-results/.playwright-artifacts-240/4e1e7cc1649f584e86226ca11178f09d.png","e2e/test-results/.playwright-artifacts-240/505ec08f78c1ac4cfbd5a64a3e01ec29.png","e2e/test-results/.playwright-artifacts-240/50ad9cd6f3585ecf685f91c233f1100f.png","e2e/test-results/.playwright-artifacts-240/56d48ae872fca36631d1f464243747be.png","e2e/test-results/.playwright-artifacts-240/5be73b706dafcc86885ef501dccd65f9.png","e2e/test-results/.playwright-artifacts-240/61a48f54c74157d08f79a5c7638a2c75.png","e2e/test-results/.playwright-artifacts-240/67cbfdd34817fa76173eda99da253422.png","e2e/test-results/.playwright-artifacts-240/6de31eb46d49679d37fcb85e09bf50a7.png","e2e/test-results/.playwright-artifacts-240/719cc5c2833983e26d2e26fb6ecd1410.png","e2e/test-results/.playwright-artifacts-240/765d23b2babbdc342a5e33cda8d39a87.png","e2e/test-results/.playwright-artifacts-240/7f1c5b28525ac2cc41bc099e6f749ab3.png","e2e/test-results/.playwright-artifacts-240/800d3474ffbcfb84327a4cff203da5ab.png","e2e/test-results/.playwright-artifacts-240/82e93cc1f0a93cda9a36e89ffa14b831.png","e2e/test-results/.playwright-artifacts-240/834a6d7b46250bf3a7b6c74804572593.png","e2e/test-results/.playwright-artifacts-240/86a3a201ece1b35521f5b7cb565876c1.png","e2e/test-results/.playwright-artifacts-240/8ab300257837e88962f2a6b7027e13a0.png","e2e/test-results/.playwright-artifacts-240/941e36d46c2caceb2ea0fc70bed6bba5.png","e2e/test-results/.playwright-artifacts-240/9e77802004f48f7c693bc508c5d8d39b.png","e2e/test-results/.playwright-artifacts-240/a0e310742c0a3c96a02bdf2c7db7dfb2.png","e2e/test-results/.playwright-artifacts-240/c4f6a23e9cd556d8fa7d69f40bc122ac.png","e2e/test-results/.playwright-artifacts-240/c51c980a067ead90c72ee084ad8fc00a.png","e2e/test-results/.playwright-artifacts-240/d74a4495418c027fb3e4b838b4aa3521.png","e2e/test-results/.playwright-artifacts-240/dace6040beafd8d86a5baf4fe5f1ae2a.png","e2e/test-results/.playwright-artifacts-240/dce6caafe2e1fcdac2ee738369ed6098.png","e2e/test-results/.playwright-artifacts-240/df5df0fd3c83d8265e719acb6b3d0ee6.png","e2e/test-results/.playwright-artifacts-240/e07d7068d011403eeb553914cb5c364e.png","e2e/test-results/.playwright-artifacts-240/e5e82b734579c829a5939d96fcc05dff.png","e2e/test-results/.playwright-artifacts-240/e8cb101c527d05e5df6ca5fc2b904583.png","e2e/test-results/.playwright-artifacts-240/eaff6d849895b87797832af1a9a24d65.png","e2e/test-results/.playwright-artifacts-240/f0ff9429d9c71385cff328a94e1a703c.png","e2e/test-results/.playwright-artifacts-240/fba7d655d78e525212c958c6c2a7227d.png","e2e/test-results/.playwright-artifacts-241/094966347a6999bd858f5ab8a249f754.png","e2e/test-results/.playwright-artifacts-241/0b6068733b160e988728b3140bdbaef5.png","e2e/test-results/.playwright-artifacts-241/1bb8fb49ed8335c1df210ed0bbe9493c.png","e2e/test-results/.playwright-artifacts-241/1dc0352fb049eb5707b5ecdeb36e7588.png","e2e/test-results/.playwright-artifacts-241/248c7bde5073b7b22bc5737b59012f68.png","e2e/test-results/.playwright-artifacts-241/26e9b207b71a36018b2252efb70c0366.png","e2e/test-results/.playwright-artifacts-241/2ae009986a6d6b9b348e715140f0e05f.png","e2e/test-results/.playwright-artifacts-241/2e7643de8fce869a4dc6701b06f92045.png","e2e/test-results/.playwright-artifacts-241/34681405d2abf88b9b47e450f48ecaa3.png","e2e/test-results/.playwright-artifacts-241/45be60ad912dd46dfb7aa5cbee9f02d0.png","e2e/test-results/.playwright-artifacts-241/5bb07c90a274dac44963d8cceca8eb1e.png","e2e/test-results/.playwright-artifacts-241/5c81aa46578a6e4a399dcdf0d73ba8d3.png","e2e/test-results/.playwright-artifacts-241/643d257ac5cf926a92dfd4e67907a9dc.png","e2e/test-results/.playwright-artifacts-241/6454481b50c1adc6bc7e94d3fb946915.png","e2e/test-results/.playwright-artifacts-241/67232c5e7156aba881fa65d80af1207b.png","e2e/test-results/.playwright-artifacts-241/67d9026a171dc55ffc861a72ce9d4b2c.png","e2e/test-results/.playwright-artifacts-241/714aeb4c6b5950f311af88662c8b4424.png","e2e/test-results/.playwright-artifacts-241/7a8af77cb2620429282f057b7c7fd0ae.png","e2e/test-results/.playwright-artifacts-241/922282efa032ca16073c502056c2826f.png","e2e/test-results/.playwright-artifacts-241/9543fc36ad8580206d7a961590a7d83d.png","e2e/test-results/.playwright-artifacts-241/9c77f778e3b32c88fe3524c93a150de1.png","e2e/test-results/.playwright-artifacts-241/9c8a27ce50fdd70f043debd37db84261.png","e2e/test-results/.playwright-artifacts-241/9ce478697576abf803f23864fd3d01c7.png","e2e/test-results/.playwright-artifacts-241/a9df789309206957d3696bd33d4752b7.png","e2e/test-results/.playwright-artifacts-241/b16f350537ed50e46405ecd91275e9f4.png","e2e/test-results/.playwright-artifacts-241/b213a106fbdfe86fe5a2e40fd333aa0c.png","e2e/test-results/.playwright-artifacts-241/b82911d04e9ad9e3893351a21a56b011.png","e2e/test-results/.playwright-artifacts-241/b94da2213274548a93d16676dea24087.png","e2e/test-results/.playwright-artifacts-241/b98a93160e626ed6e3b05e7e527192fa.png","e2e/test-results/.playwright-artifacts-241/c2f7e527724d7e5eb8d379e3fbfc1b83.png","e2e/test-results/.playwright-artifacts-241/c800d08cc104e95000629104c11fd8b3.png","e2e/test-results/.playwright-artifacts-241/cd36bb67c1c05fedeac1923b06e6d4f5.png","e2e/test-results/.playwright-artifacts-241/d2ebbb7e8ca084380958c49f40f1bcac.png","e2e/test-results/.playwright-artifacts-241/d6ef796cc1833026cab7434b435084f4.png","e2e/test-results/.playwright-artifacts-241/dc49bd3538e061f12e7b17709d6bba0d.png","e2e/test-results/.playwright-artifacts-241/e014d348f300176842a83787a7f7938c.png","e2e/test-results/.playwright-artifacts-241/e8b738bc9925b35cacb65db8fd37bd27.png","e2e/test-results/.playwright-artifacts-241/ed833f2d058e02081a433bb71c5c71ca.png","e2e/test-results/.playwright-artifacts-241/f42b7455348166022fb51732079f16a2.png","e2e/test-results/.playwright-artifacts-241/f7ffcca2f8bd695dbd421e83dfd7dacb.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b88a-矩阵-module-resource-requests-chromium/attachments/probe-P01-828a9fe4a1cc10ad814b8901ea3f331dabb4f466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1445f--创建成功-module-admin-settings-chromium/attachments/probe-C01-b70ed60761f6c844c0724c90be9bd3a2e28f887e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-159b4-失败-module-resource-requests-chromium/attachments/probe-C02-579660baa87709a7140145510b380b58f4afc555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1a1ae--用户管理-P01-权限矩阵-module-users-chromium/attachments/probe-P01-21d61422e262180992f04fed0d6e1f58f4f8928a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ad44--异常恢复-module-admin-settings-chromium/attachments/probe-E01-167118b9260fa76b0a2a1f0fa96675e800dc6f74.json","e2e/test-results/crud-00-crud-runner-CRUD-严-20309-异常恢复-module-stage-knowledge-chromium/attachments/probe-E01-65c2d06fb134d7cb9f3931a7131cf0260ea97061.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22f29-理-D02-恢复或不可见校验-module-roles-chromium/attachments/probe-D02-d26e2d296f3e8407ccfd9c2cc2f24cf6829a8508.json","e2e/test-results/crud-00-crud-runner-CRUD-严-239e9-验-module-knowledge-feedback-chromium/attachments/probe-D02-e58bb6a96915688b8f2287bbb25bab2388293c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ba01-更新成功-module-stage-knowledge-chromium/attachments/probe-U01-208017e0ddf654dcec7c7e6ed78e75cdbcaeefe5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c5eb-建校验失败-module-admin-settings-chromium/attachments/probe-C02-c917accda05528170401af83fb11a330a3cbda4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34d7b-可见校验-module-stage-knowledge-chromium/attachments/probe-D02-821275ce5a1a2d3c0299a4438bc0551a6d53176c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34f0e--更新成功-module-admin-settings-chromium/attachments/probe-U01-f4a4e93fb88c2ef19abde8f7dd664879de695c9f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-365ba--用户管理-C01-创建成功-module-users-chromium/attachments/probe-C01-900190bda813dce7a5e62caaa492f5a3677f3e23.json","e2e/test-results/crud-00-crud-runner-CRUD-严-392a1--im-即时通讯-E01-异常恢复-module-im-chromium/attachments/probe-E01-fa3a07d4be5ae62afd985ab459bbd15a33a2fdef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a38c--D01-删除-软-硬-可用-module-roles-chromium/attachments/probe-D01-ae5282c3a94d95edce6b6b614e0f1c7bb0cacec0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4220e--角色管理-P01-权限矩阵-module-roles-chromium/attachments/probe-P01-bf40ed0eb839caf8e2dc359b3fbf41adc61a8186.json","e2e/test-results/crud-00-crud-runner-CRUD-严-43344-校验失败-module-stage-knowledge-chromium/attachments/probe-C02-c40333d9c899532c29747a98c3608a229f081c35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-460f0-户管理-C02-创建校验失败-module-users-chromium/attachments/probe-C02-793ed6868532d6f08fa3b7e01ef91cee883edc62.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b07d--可用-module-process-designer-chromium/attachments/probe-D01-acbfe0f811bb517717a6b841a585892cbebff24c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4f5-可用-module-resource-requests-chromium/attachments/probe-D01-2e8e53337f638a07ab7cc317baa3d97366c245e0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7f3--im-即时通讯-P01-权限矩阵-module-im-chromium/attachments/probe-P01-b22bb94be6b4cf1a140ec1c9f11b2ce4b3ea633f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52d8f-校验-module-resource-requests-chromium/attachments/probe-D02-dbcf98c1134a088b83217a812d0c0a8650ac69a3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-538f0-色管理-C02-创建校验失败-module-roles-chromium/attachments/probe-C02-2f4ee0aa5a1a7bf30860781b2ab8e052c752a87c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-60bbd-管理-U02-更新权限-冲突-module-roles-chromium/attachments/probe-U02-0531249436aff73c81d0fc89355c4cbc7167ec8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bff7-理-D02-恢复或不可见校验-module-users-chromium/attachments/probe-D02-cfa483afa2a0dcba0b625f169d4ddfd4df7815e9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6d194-见校验-module-process-designer-chromium/attachments/probe-D02-ace63a12d5911b8f54a54b89d94362c9b7276535.json","e2e/test-results/crud-00-crud-runner-CRUD-严-72cf4--角色管理-U01-更新成功-module-roles-chromium/attachments/probe-U01-daf71b632d68b74b441594222818913f9937bd60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-77ec5-创建成功-module-stage-knowledge-chromium/attachments/probe-C01-073ec52dcaf122cc92ed77c881d6407f63e053ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f7f1--列表可读-module-admin-settings-chromium/attachments/probe-R01-1b19c02416b08eebec04e254505821f27bda570e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89494--冲突-module-process-designer-chromium/attachments/probe-U02-57053c2bcdfde404efd732026ff7bbb7c2a742c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89599-冲突-module-resource-requests-chromium/attachments/probe-U02-3bbd6461e4141361d2910d0d997a2174989df606.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d2e4-硬-可用-module-stage-knowledge-chromium/attachments/probe-D01-bcca5204eae3c340bcf2e5d455dde9e35cc10053.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8fa15-复-module-knowledge-feedback-chromium/attachments/probe-E01-768d744b990df78d05147237c0636c4ee771c1ed.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9d5c3-新成功-module-process-designer-chromium/attachments/probe-U01-b82cb3f43ec5fd03fbcf5e9a47076d4b327698f7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a99bb-m-即时通讯-C02-创建校验失败-module-im-chromium/attachments/probe-C02-fd074e16ad7f94b54706d083613b4b5d32b93e4b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4daf--权限矩阵-module-admin-settings-chromium/attachments/probe-P01-d0080ae80a82c103bcd848bca31d749b3dcc8352.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b8549-成功-module-resource-requests-chromium/attachments/probe-U01-ca13f11ed3d09b5def3fe7e441ad40110d2b0379.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4557--用户管理-U01-更新成功-module-users-chromium/attachments/probe-U01-712df3b828fbaea6fc759167308e86fa7855176f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c39-恢复-module-resource-requests-chromium/attachments/probe-E01-e9b591e744c63185541a625ceba5e5d973b6746b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c7867--角色管理-C01-创建成功-module-roles-chromium/attachments/probe-C01-7a7d119a902c3f458539ddaa114898e0a33f4d8f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc828--即时通讯-U02-更新权限-冲突-module-im-chromium/attachments/probe-U02-76760ce7a07288e361d11e3be6c77b61b817ee40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce2ac--详情可读-module-admin-settings-chromium/attachments/probe-R03-cea057b72b957fdb65cc5e3b674bfa2f05636e5e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d14d4--用户管理-E01-异常恢复-module-users-chromium/attachments/probe-E01-6169c2a0eaab0a87b4892d56e1c64902f64e0217.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3762-限-冲突-module-stage-knowledge-chromium/attachments/probe-U02-9e395cc67c38073bfd6eb6ad38fe5ac43a337d56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d6fb4-常恢复-module-process-designer-chromium/attachments/probe-E01-b1f8e178d5a774eddb298c119317b36e0414d60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de878--角色管理-E01-异常恢复-module-roles-chromium/attachments/probe-E01-bb017dd97b92cb05f37191c933e038af13a8c04a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e43a6-限矩阵-module-process-designer-chromium/attachments/probe-P01-e9df19eeca43b46dca36a135566329b6da44cacd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e4560-管理-U02-更新权限-冲突-module-users-chromium/attachments/probe-U02-a105db3f1ef20b6b8ba0ed401d244b376932736b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ea129-阵-module-knowledge-feedback-chromium/attachments/probe-P01-c3160dc84a9d7fea219587cb594dd8add36d515d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec3b8-验失败-module-process-designer-chromium/attachments/probe-C02-dae6185bd96e2e2c88c4bb9104517a939b2afb15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed28f-权限矩阵-module-stage-knowledge-chromium/attachments/probe-P01-703da6de6b8031b653cf5cb16f3656f251917838.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee943-成功-module-resource-requests-chromium/attachments/probe-C01-96dc059a7597ae051b9d321db1cb4b470806e6f4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eee91-用-module-knowledge-feedback-chromium/attachments/probe-D01-43d0c2e97c66fbd3301826ea68d66fce62cb7eb0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f3c4d-询筛选分页-module-admin-settings-chromium/attachments/probe-R02-55334ddef6735b6dddfc2d2e6143a089efb9be24.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f690b--D01-删除-软-硬-可用-module-users-chromium/attachments/probe-D01-6438fdd0fae658cd354e2761efa5b0065ab74607.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fabfb-建成功-module-process-designer-chromium/attachments/probe-C01-65e7119661d41d890e1f8d734662a8ce3b15268c.json","e2e/test-results/crud/probes/admin-settings-C01-1774228943803.json","e2e/test-results/crud/probes/admin-settings-C02-1774228945689.json","e2e/test-results/crud/probes/admin-settings-E01-1774228954200.json","e2e/test-results/crud/probes/admin-settings-P01-1774228952357.json","e2e/test-results/crud/probes/admin-settings-R01-1774228946846.json","e2e/test-results/crud/probes/admin-settings-R02-1774228948718.json","e2e/test-results/crud/probes/admin-settings-R03-1774228950565.json","e2e/test-results/crud/probes/admin-settings-U01-1774228956047.json","e2e/test-results/crud/probes/im-C02-1774228926548.json","e2e/test-results/crud/probes/im-E01-1774228936351.json","e2e/test-results/crud/probes/im-P01-1774228934107.json","e2e/test-results/crud/probes/im-U02-1774228939732.json","e2e/test-results/crud/probes/knowledge-feedback-D01-1774228819428.json","e2e/test-results/crud/probes/knowledge-feedback-D02-1774228821536.json","e2e/test-results/crud/probes/knowledge-feedback-E01-1774228817921.json","e2e/test-results/crud/probes/knowledge-feedback-P01-1774228815781.json","e2e/test-results/crud/probes/process-designer-C01-1774228822742.json","e2e/test-results/crud/probes/process-designer-C02-1774228824586.json","e2e/test-results/crud/probes/process-designer-D01-1774228839637.json","e2e/test-results/crud/probes/process-designer-D02-1774228841175.json","e2e/test-results/crud/probes/process-designer-E01-1774228834388.json","e2e/test-results/crud/probes/process-designer-P01-1774228832112.json","e2e/test-results/crud/probes/process-designer-U01-1774228835867.json","e2e/test-results/crud/probes/process-designer-U02-1774228837789.json","e2e/test-results/crud/probes/resource-requests-C01-1774228842926.json","e2e/test-results/crud/probes/resource-requests-C02-1774228844702.json","e2e/test-results/crud/probes/resource-requests-D01-1774228859373.json","e2e/test-results/crud/probes/resource-requests-D02-1774228861489.json","e2e/test-results/crud/probes/resource-requests-E01-1774228854515.json","e2e/test-results/crud/probes/resource-requests-P01-1774228852276.json","e2e/test-results/crud/probes/resource-requests-U01-1774228855843.json","e2e/test-results/crud/probes/resource-requests-U02-1774228857762.json","e2e/test-results/crud/probes/roles-C01-1774228862700.json","e2e/test-results/crud/probes/roles-C02-1774228864549.json","e2e/test-results/crud/probes/roles-D01-1774228879608.json","e2e/test-results/crud/probes/roles-D02-1774228881181.json","e2e/test-results/crud/probes/roles-E01-1774228874266.json","e2e/test-results/crud/probes/roles-P01-1774228872022.json","e2e/test-results/crud/probes/roles-U01-1774228875744.json","e2e/test-results/crud/probes/roles-U02-1774228877671.json","e2e/test-results/crud/probes/stage-knowledge-C01-1774228882938.json","e2e/test-results/crud/probes/stage-knowledge-C02-1774228884716.json","e2e/test-results/crud/probes/stage-knowledge-D01-1774228900165.json","e2e/test-results/crud/probes/stage-knowledge-D02-1774228901711.json","e2e/test-results/crud/probes/stage-knowledge-E01-1774228894714.json","e2e/test-results/crud/probes/stage-knowledge-P01-1774228892441.json","e2e/test-results/crud/probes/stage-knowledge-U01-1774228896206.json","e2e/test-results/crud/probes/stage-knowledge-U02-1774228898148.json","e2e/test-results/crud/probes/users-C01-1774228903774.json","e2e/test-results/crud/probes/users-C02-1774228905307.json","e2e/test-results/crud/probes/users-D01-1774228921548.json","e2e/test-results/crud/probes/users-D02-1774228923127.json","e2e/test-results/crud/probes/users-E01-1774228915372.json","e2e/test-results/crud/probes/users-P01-1774228913142.json","e2e/test-results/crud/probes/users-U01-1774228917209.json","e2e/test-results/crud/probes/users-U02-1774228919166.json","e2e/tests/quarantine/.gitkeep","frontend/src/composables/__tests__/useApiQuery.test.ts","frontend/src/router/modules/acquisition.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/router/modules/compat-redirects.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/dashboard.ts","frontend/src/router/modules/finance.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/marketing.ts","frontend/src/router/modules/sales.ts","frontend/src/router/modules/service.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/router/modules/system.ts","frontend/src/stores/__tests__/app.store.test.ts","frontend/src/stores/__tests__/im.store.test.ts","frontend/src/stores/__tests__/knowledge.store.test.ts","frontend/src/styles/_containers.scss","frontend/src/styles/layers.css","frontend/src/utils/echarts.ts"],"removed":["e2e/test-results/results.json"],"modified":[".github/workflows/ci.yml","backend/.env.example","backend/package.json","backend/scripts/audit-prisma-zod-contract.ts","backend/scripts/generate-rls-policies.ts","backend/src/config/env.ts","backend/src/config/kafka.ts","backend/src/consumers/__tests__/sales.consumer.test.ts","backend/src/main.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.test.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/campaigns/campaign.service.enhanced.test.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.test.ts","backend/src/modules/channels/channel.schema.test.ts","backend/src/modules/community-gamification/community-gamification.service.test.ts","backend/src/modules/community-materials/community-material.service.test.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/content-analytics/content-analytics.service.test.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customer-analytics/customer-analytics.service.test.ts","backend/src/modules/customer-balance/customer-balance.service.test.ts","backend/src/modules/financial-reports/financial-reports.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.test.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.test.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.test.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.test.ts","backend/src/modules/im/websocket/gateway.ts","backend/src/modules/im/websocket/health.ts","backend/src/modules/im/websocket/redis-adapter.ts","backend/src/modules/integration-services/integration-service.service.test.ts","backend/src/modules/lead-qualification/qualification.service.test.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.test.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.test.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/livestream/livestream.service.test.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.test.ts","backend/src/modules/marketing-content/marketing-content.service.test.ts","backend/src/modules/marketing-forms/marketing-form.service.test.ts","backend/src/modules/marketing-north-star/marketing-north-star.service.test.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.test.ts","backend/src/modules/marketing/marketing.service.test.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-statement.service.ts","backend/src/modules/pm/pm.service.test.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/quotes/quote-decompose.service.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/rma/rma.service.test.ts","backend/src/modules/sample-requests/sample-request.service.test.ts","backend/src/modules/serial-numbers/sn.service.test.ts","backend/src/modules/sms-marketing/sms-marketing.service.test.ts","backend/src/modules/social-interactions/social-interactions.service.test.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/services/__tests__/outbox-processor.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/src/shared/state-machines/__tests__/ai-task.machine.test.ts","backend/src/shared/state-machines/__tests__/contract.machine.test.ts","backend/src/shared/utils/biz-code.test.ts","backend/src/shared/utils/crud.ts","backend/tests/unit/process-core/workflow-e2e.test.ts","backend/tests/unit/services/lead.service.test.ts","backend/tests/unit/services/quote.service.test.ts","deploy/grafana/provisioning/datasources/datasources.yml","docker-compose.prod.yml","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/playwright.config.ts","e2e/test-results/.last-run.json","frontend/package.json","frontend/src/components/common/DataTable.vue","frontend/src/components/responsive/ResponsiveChart.vue","frontend/src/main.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/supplemental.ts","frontend/src/stores/auth.ts","frontend/src/styles/index.scss","frontend/src/views/ai-agents/autopilot/AITestCases.vue","frontend/src/views/ai-agents/components/AgentModelManager.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/campaigns/analytics/index.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/FunnelChart.vue","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/inventory/Analytics.vue","frontend/src/views/knowledge/components/KnowledgeGraph.vue","frontend/src/views/service-dashboard/components/SLAPanel.vue","frontend/src/views/service-dashboard/components/SatisfactionPanel.vue","frontend/src/views/service-dashboard/components/TicketStatsPanel.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/vite.config.ts","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"339ea969ec2633756fb1a155d47723d0f61396a4","message":"chore: comprehensive governance updates and test artifacts\n\n- Add Prisma schema modularization and migration scripts\n- Add service test coverage across all modules (AI, alliance, community, marketing, etc.)\n- Add shared services (cache, custom-fields, dynamic-state-machine, encryption, etc.)\n- Add infrastructure configs (ClickHouse, Debezium, Tempo)\n- Add user manual and technical documentation with screenshots\n- Add router module organization for all centers\n- Add store/test coverage and Playwright artifacts\n- Update CI workflow, environment configs, and dependencies\n- Fix security issues in auth, kafka, and validation layers\n- Fix permission naming tests to expect kebab-case output\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/339ea969ec2633756fb1a155d47723d0f61396a4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T09:22:37+08:00","added":["backend/prisma/migrations/manual/create_dynamic_sm_and_custom_fields.sql","backend/prisma/migrations/manual/create_knowledge_embeddings.sql","backend/prisma/migrations/materialized_views.sql","backend/prisma/schema/_base.prisma","backend/prisma/schema/_enums.prisma","backend/prisma/schema/ai.prisma","backend/prisma/schema/alliance.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/customers.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/geo.prisma","backend/prisma/schema/hr.prisma","backend/prisma/schema/im.prisma","backend/prisma/schema/knowledge.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/livestream.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/products.prisma","backend/prisma/schema/project.prisma","backend/prisma/schema/renewals.prisma","backend/prisma/schema/sales.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/social.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/config/__tests__/kafka-router.test.ts","backend/src/config/tracing.ts","backend/src/modules/ai-copilot/ai-copilot.service.test.ts","backend/src/modules/alliance-analytics/alliance-analytics.service.test.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.test.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-products/alliance-product.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.test.ts","backend/src/modules/alliance-referrals/alliance-referral.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/approval-templates/approval-template.service.test.ts","backend/src/modules/campaign-targets/campaign-target.service.test.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.test.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.test.ts","backend/src/modules/community-activities/community-activity.service.test.ts","backend/src/modules/community-analytics/community-analytics.service.test.ts","backend/src/modules/community-fission/community-fission.service.test.ts","backend/src/modules/community-groups/community-group.service.test.ts","backend/src/modules/community-members/community-member.service.test.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.test.ts","backend/src/modules/content-categories/content-category.service.test.ts","backend/src/modules/content-copyright/content-copyright.service.test.ts","backend/src/modules/content-creation/content-creation.service.test.ts","backend/src/modules/content-distribution/content-distribution.service.test.ts","backend/src/modules/content-library/content-library.service.test.ts","backend/src/modules/content-review/content-review.service.test.ts","backend/src/modules/content-templates/content-template.service.test.ts","backend/src/modules/contract-templates/contract-template.service.test.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.test.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.test.ts","backend/src/modules/customer-journey/customer-journey.service.test.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.test.ts","backend/src/modules/customer-ltv/customer-ltv.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.test.ts","backend/src/modules/dimension-transform/dimension-transform.service.test.ts","backend/src/modules/disbursements/disbursement-record.service.test.ts","backend/src/modules/events/event.service.test.ts","backend/src/modules/finance/finance-credits.service.test.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-refunds.service.test.ts","backend/src/modules/finance/finance.service.test.ts","backend/src/modules/geo-analytics/geo-analytics.service.test.ts","backend/src/modules/geo-fences/geo-fences.service.test.ts","backend/src/modules/geo-keywords/geo-keyword.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.test.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.test.ts","backend/src/modules/hr/positions/positions.service.test.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.test.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.test.ts","backend/src/modules/livestream-products/livestream-product.service.test.ts","backend/src/modules/livestream-rooms/livestream-room.service.test.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.test.ts","backend/src/modules/livestream-scripts/livestream-script.service.test.ts","backend/src/modules/marketing-calendar/marketing-calendar.service.test.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.test.ts","backend/src/modules/marketing-matrix/matrix.service.test.ts","backend/src/modules/mdm/mdm.service.test.ts","backend/src/modules/menus/menu.service.test.ts","backend/src/modules/multi-touch-attribution/multi-touch-attribution.service.test.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.test.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.test.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.test.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.test.ts","backend/src/modules/reports/report.service.test.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.test.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.test.ts","backend/src/modules/self-operated-store/self-operated-store.service.test.ts","backend/src/modules/social-accounts/social-account.service.test.ts","backend/src/modules/social-auto-replies/social-auto-reply.service.test.ts","backend/src/modules/social-posts/social-post.service.test.ts","backend/src/modules/store-agency/store-agency.service.test.ts","backend/src/modules/suppliers/supplier.service.test.ts","backend/src/modules/video-calls/video-call.service.test.ts","backend/src/shared/middleware/__tests__/security-fixes.test.ts","backend/src/shared/middleware/field-encryption.middleware.ts","backend/src/shared/middleware/rate-limit.middleware.ts","backend/src/shared/services/__tests__/audit-log.service.test.ts","backend/src/shared/services/__tests__/custom-fields.service.test.ts","backend/src/shared/services/__tests__/dynamic-state-machine.service.test.ts","backend/src/shared/services/__tests__/list-cache.service.test.ts","backend/src/shared/services/__tests__/llm-gateway.service.test.ts","backend/src/shared/services/__tests__/prompt-registry.service.test.ts","backend/src/shared/services/abac-policy.service.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/services/custom-fields.service.ts","backend/src/shared/services/dynamic-state-machine.service.ts","backend/src/shared/services/field-encryption.service.ts","backend/src/shared/services/immutable-audit.service.ts","backend/src/shared/services/llm-gateway.service.ts","backend/src/shared/services/materialized-view.service.ts","backend/src/shared/services/prompt-registry.service.ts","backend/src/shared/services/rag-pipeline.service.ts","backend/src/shared/utils/__tests__/permission-normalizer.test.ts","backend/src/shared/utils/__tests__/validation-security.test.ts","backend/src/shared/utils/permission-normalizer.ts","deploy/clickhouse/config.xml","deploy/clickhouse/init.sql","deploy/debezium/register-connector.json","deploy/tempo/config.yaml","docker-compose.analytics.yml","docs/test-plan/TEST-PLAN.md","docs/user-manual/convert-tech-manual.mjs","docs/user-manual/convert-to-html.mjs","docs/user-manual/screenshots/01-login-2026-03-23T00-12-58-197Z.png","docs/user-manual/screenshots/02-dashboard-2026-03-23T00-13-11-223Z.png","docs/user-manual/screenshots/03-ai-agents-2026-03-23T00-13-44-706Z.png","docs/user-manual/screenshots/04-leads-2026-03-23T00-13-49-733Z.png","docs/user-manual/screenshots/05-lead-qualification-2026-03-23T00-13-55-424Z.png","docs/user-manual/screenshots/06-content-library-2026-03-23T00-14-01-180Z.png","docs/user-manual/screenshots/07-campaigns-2026-03-23T00-14-06-696Z.png","docs/user-manual/screenshots/08-opportunities-2026-03-23T00-14-12-799Z.png","docs/user-manual/screenshots/09-quotes-2026-03-23T00-14-20-564Z.png","docs/user-manual/screenshots/10-contracts-2026-03-23T00-14-26-796Z.png","docs/user-manual/screenshots/11-orders-2026-03-23T00-14-32-331Z.png","docs/user-manual/screenshots/12-stores-2026-03-23T00-14-37-745Z.png","docs/user-manual/screenshots/13-tickets-2026-03-23T00-14-43-846Z.png","docs/user-manual/screenshots/14-sla-2026-03-23T00-14-49-340Z.png","docs/user-manual/screenshots/15-ar-ledger-2026-03-23T00-14-54-842Z.png","docs/user-manual/screenshots/16-payments-2026-03-23T00-14-59-958Z.png","docs/user-manual/screenshots/17-purchase-orders-2026-03-23T00-15-06-034Z.png","docs/user-manual/screenshots/19-products-2026-03-23T00-15-17-479Z.png","docs/user-manual/screenshots/20-knowledge-2026-03-23T00-15-24-044Z.png","docs/user-manual/screenshots/21-approvals-2026-03-23T00-15-30-115Z.png","docs/user-manual/screenshots/22-hr-attendance-2026-03-23T00-15-36-643Z.png","docs/user-manual/screenshots/23-tenant-configs-2026-03-23T00-15-42-739Z.png","docs/user-manual/screenshots/25-roles-2026-03-23T00-15-56-801Z.png","docs/user-manual/screenshots/26-customers-2026-03-23T00-16-02-467Z.png","docs/user-manual/screenshots/27-im-2026-03-23T00-16-07-704Z.png","docs/user-manual/screenshots/tech-01-api-docs-2026-03-23T00-30-33-332Z.png","docs/user-manual/screenshots/tech-02-system-monitor-2026-03-23T00-30-42-759Z.png","docs/user-manual/screenshots/tech-03-event-logs-fix-2026-03-23T01-07-06-085Z.png","docs/user-manual/screenshots/tech-04-scheduled-jobs-2026-03-23T00-31-01-868Z.png","docs/user-manual/screenshots/tech-05-process-designer-2026-03-23T00-31-11-126Z.png","docs/user-manual/screenshots/tech-06-operation-logs-2026-03-23T00-31-20-335Z.png","docs/user-manual/screenshots/tech-07-settings-fix-2026-03-23T01-04-46-329Z.png","docs/user-manual/screenshots/tech-08-notification-configs-2026-03-23T00-31-38-845Z.png","docs/user-manual/technical-manual-content.md","docs/user-manual/technical-manual.html","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","docs/user-manual/巨嗨全域智库-技术开发手册-v1.0.pdf","docs/user-manual/巨嗨全域智库-用户使用手册-v1.0.pdf","e2e/QUARANTINE.md","e2e/playwright-report/data/0841239e09a180630fc75a988c85edb7d05739ad.md","e2e/playwright-report/data/db1fc0403d7c6af356a063a72ff6b4161a90d53a.png","e2e/test-results/.playwright-artifacts-240/040dee8f334f6c93fa788311a8961dae.png","e2e/test-results/.playwright-artifacts-240/058f808b72bfb61b392c5078d5509418.png","e2e/test-results/.playwright-artifacts-240/0893f4c2a4a7c014d48a306a37a5dc6f.png","e2e/test-results/.playwright-artifacts-240/1bd44c2c27b13a8e4e20754676e16753.png","e2e/test-results/.playwright-artifacts-240/202267e939ad0f07474e283188a20e7d.png","e2e/test-results/.playwright-artifacts-240/2643239379fd7e6fb2b3af6dacebc4fa.png","e2e/test-results/.playwright-artifacts-240/275d5fde4f54663504fbe6b3e84548d3.png","e2e/test-results/.playwright-artifacts-240/42867d3c5c17db159677472c69e89621.png","e2e/test-results/.playwright-artifacts-240/437c27fb2bacac72655c93b0b195c12b.png","e2e/test-results/.playwright-artifacts-240/4e1e7cc1649f584e86226ca11178f09d.png","e2e/test-results/.playwright-artifacts-240/505ec08f78c1ac4cfbd5a64a3e01ec29.png","e2e/test-results/.playwright-artifacts-240/50ad9cd6f3585ecf685f91c233f1100f.png","e2e/test-results/.playwright-artifacts-240/56d48ae872fca36631d1f464243747be.png","e2e/test-results/.playwright-artifacts-240/5be73b706dafcc86885ef501dccd65f9.png","e2e/test-results/.playwright-artifacts-240/61a48f54c74157d08f79a5c7638a2c75.png","e2e/test-results/.playwright-artifacts-240/67cbfdd34817fa76173eda99da253422.png","e2e/test-results/.playwright-artifacts-240/6de31eb46d49679d37fcb85e09bf50a7.png","e2e/test-results/.playwright-artifacts-240/719cc5c2833983e26d2e26fb6ecd1410.png","e2e/test-results/.playwright-artifacts-240/765d23b2babbdc342a5e33cda8d39a87.png","e2e/test-results/.playwright-artifacts-240/7f1c5b28525ac2cc41bc099e6f749ab3.png","e2e/test-results/.playwright-artifacts-240/800d3474ffbcfb84327a4cff203da5ab.png","e2e/test-results/.playwright-artifacts-240/82e93cc1f0a93cda9a36e89ffa14b831.png","e2e/test-results/.playwright-artifacts-240/834a6d7b46250bf3a7b6c74804572593.png","e2e/test-results/.playwright-artifacts-240/86a3a201ece1b35521f5b7cb565876c1.png","e2e/test-results/.playwright-artifacts-240/8ab300257837e88962f2a6b7027e13a0.png","e2e/test-results/.playwright-artifacts-240/941e36d46c2caceb2ea0fc70bed6bba5.png","e2e/test-results/.playwright-artifacts-240/9e77802004f48f7c693bc508c5d8d39b.png","e2e/test-results/.playwright-artifacts-240/a0e310742c0a3c96a02bdf2c7db7dfb2.png","e2e/test-results/.playwright-artifacts-240/c4f6a23e9cd556d8fa7d69f40bc122ac.png","e2e/test-results/.playwright-artifacts-240/c51c980a067ead90c72ee084ad8fc00a.png","e2e/test-results/.playwright-artifacts-240/d74a4495418c027fb3e4b838b4aa3521.png","e2e/test-results/.playwright-artifacts-240/dace6040beafd8d86a5baf4fe5f1ae2a.png","e2e/test-results/.playwright-artifacts-240/dce6caafe2e1fcdac2ee738369ed6098.png","e2e/test-results/.playwright-artifacts-240/df5df0fd3c83d8265e719acb6b3d0ee6.png","e2e/test-results/.playwright-artifacts-240/e07d7068d011403eeb553914cb5c364e.png","e2e/test-results/.playwright-artifacts-240/e5e82b734579c829a5939d96fcc05dff.png","e2e/test-results/.playwright-artifacts-240/e8cb101c527d05e5df6ca5fc2b904583.png","e2e/test-results/.playwright-artifacts-240/eaff6d849895b87797832af1a9a24d65.png","e2e/test-results/.playwright-artifacts-240/f0ff9429d9c71385cff328a94e1a703c.png","e2e/test-results/.playwright-artifacts-240/fba7d655d78e525212c958c6c2a7227d.png","e2e/test-results/.playwright-artifacts-241/094966347a6999bd858f5ab8a249f754.png","e2e/test-results/.playwright-artifacts-241/0b6068733b160e988728b3140bdbaef5.png","e2e/test-results/.playwright-artifacts-241/1bb8fb49ed8335c1df210ed0bbe9493c.png","e2e/test-results/.playwright-artifacts-241/1dc0352fb049eb5707b5ecdeb36e7588.png","e2e/test-results/.playwright-artifacts-241/248c7bde5073b7b22bc5737b59012f68.png","e2e/test-results/.playwright-artifacts-241/26e9b207b71a36018b2252efb70c0366.png","e2e/test-results/.playwright-artifacts-241/2ae009986a6d6b9b348e715140f0e05f.png","e2e/test-results/.playwright-artifacts-241/2e7643de8fce869a4dc6701b06f92045.png","e2e/test-results/.playwright-artifacts-241/34681405d2abf88b9b47e450f48ecaa3.png","e2e/test-results/.playwright-artifacts-241/45be60ad912dd46dfb7aa5cbee9f02d0.png","e2e/test-results/.playwright-artifacts-241/5bb07c90a274dac44963d8cceca8eb1e.png","e2e/test-results/.playwright-artifacts-241/5c81aa46578a6e4a399dcdf0d73ba8d3.png","e2e/test-results/.playwright-artifacts-241/643d257ac5cf926a92dfd4e67907a9dc.png","e2e/test-results/.playwright-artifacts-241/6454481b50c1adc6bc7e94d3fb946915.png","e2e/test-results/.playwright-artifacts-241/67232c5e7156aba881fa65d80af1207b.png","e2e/test-results/.playwright-artifacts-241/67d9026a171dc55ffc861a72ce9d4b2c.png","e2e/test-results/.playwright-artifacts-241/714aeb4c6b5950f311af88662c8b4424.png","e2e/test-results/.playwright-artifacts-241/7a8af77cb2620429282f057b7c7fd0ae.png","e2e/test-results/.playwright-artifacts-241/922282efa032ca16073c502056c2826f.png","e2e/test-results/.playwright-artifacts-241/9543fc36ad8580206d7a961590a7d83d.png","e2e/test-results/.playwright-artifacts-241/9c77f778e3b32c88fe3524c93a150de1.png","e2e/test-results/.playwright-artifacts-241/9c8a27ce50fdd70f043debd37db84261.png","e2e/test-results/.playwright-artifacts-241/9ce478697576abf803f23864fd3d01c7.png","e2e/test-results/.playwright-artifacts-241/a9df789309206957d3696bd33d4752b7.png","e2e/test-results/.playwright-artifacts-241/b16f350537ed50e46405ecd91275e9f4.png","e2e/test-results/.playwright-artifacts-241/b213a106fbdfe86fe5a2e40fd333aa0c.png","e2e/test-results/.playwright-artifacts-241/b82911d04e9ad9e3893351a21a56b011.png","e2e/test-results/.playwright-artifacts-241/b94da2213274548a93d16676dea24087.png","e2e/test-results/.playwright-artifacts-241/b98a93160e626ed6e3b05e7e527192fa.png","e2e/test-results/.playwright-artifacts-241/c2f7e527724d7e5eb8d379e3fbfc1b83.png","e2e/test-results/.playwright-artifacts-241/c800d08cc104e95000629104c11fd8b3.png","e2e/test-results/.playwright-artifacts-241/cd36bb67c1c05fedeac1923b06e6d4f5.png","e2e/test-results/.playwright-artifacts-241/d2ebbb7e8ca084380958c49f40f1bcac.png","e2e/test-results/.playwright-artifacts-241/d6ef796cc1833026cab7434b435084f4.png","e2e/test-results/.playwright-artifacts-241/dc49bd3538e061f12e7b17709d6bba0d.png","e2e/test-results/.playwright-artifacts-241/e014d348f300176842a83787a7f7938c.png","e2e/test-results/.playwright-artifacts-241/e8b738bc9925b35cacb65db8fd37bd27.png","e2e/test-results/.playwright-artifacts-241/ed833f2d058e02081a433bb71c5c71ca.png","e2e/test-results/.playwright-artifacts-241/f42b7455348166022fb51732079f16a2.png","e2e/test-results/.playwright-artifacts-241/f7ffcca2f8bd695dbd421e83dfd7dacb.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b88a-矩阵-module-resource-requests-chromium/attachments/probe-P01-828a9fe4a1cc10ad814b8901ea3f331dabb4f466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1445f--创建成功-module-admin-settings-chromium/attachments/probe-C01-b70ed60761f6c844c0724c90be9bd3a2e28f887e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-159b4-失败-module-resource-requests-chromium/attachments/probe-C02-579660baa87709a7140145510b380b58f4afc555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1a1ae--用户管理-P01-权限矩阵-module-users-chromium/attachments/probe-P01-21d61422e262180992f04fed0d6e1f58f4f8928a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ad44--异常恢复-module-admin-settings-chromium/attachments/probe-E01-167118b9260fa76b0a2a1f0fa96675e800dc6f74.json","e2e/test-results/crud-00-crud-runner-CRUD-严-20309-异常恢复-module-stage-knowledge-chromium/attachments/probe-E01-65c2d06fb134d7cb9f3931a7131cf0260ea97061.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22f29-理-D02-恢复或不可见校验-module-roles-chromium/attachments/probe-D02-d26e2d296f3e8407ccfd9c2cc2f24cf6829a8508.json","e2e/test-results/crud-00-crud-runner-CRUD-严-239e9-验-module-knowledge-feedback-chromium/attachments/probe-D02-e58bb6a96915688b8f2287bbb25bab2388293c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ba01-更新成功-module-stage-knowledge-chromium/attachments/probe-U01-208017e0ddf654dcec7c7e6ed78e75cdbcaeefe5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c5eb-建校验失败-module-admin-settings-chromium/attachments/probe-C02-c917accda05528170401af83fb11a330a3cbda4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34d7b-可见校验-module-stage-knowledge-chromium/attachments/probe-D02-821275ce5a1a2d3c0299a4438bc0551a6d53176c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34f0e--更新成功-module-admin-settings-chromium/attachments/probe-U01-f4a4e93fb88c2ef19abde8f7dd664879de695c9f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-365ba--用户管理-C01-创建成功-module-users-chromium/attachments/probe-C01-900190bda813dce7a5e62caaa492f5a3677f3e23.json","e2e/test-results/crud-00-crud-runner-CRUD-严-392a1--im-即时通讯-E01-异常恢复-module-im-chromium/attachments/probe-E01-fa3a07d4be5ae62afd985ab459bbd15a33a2fdef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a38c--D01-删除-软-硬-可用-module-roles-chromium/attachments/probe-D01-ae5282c3a94d95edce6b6b614e0f1c7bb0cacec0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4220e--角色管理-P01-权限矩阵-module-roles-chromium/attachments/probe-P01-bf40ed0eb839caf8e2dc359b3fbf41adc61a8186.json","e2e/test-results/crud-00-crud-runner-CRUD-严-43344-校验失败-module-stage-knowledge-chromium/attachments/probe-C02-c40333d9c899532c29747a98c3608a229f081c35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-460f0-户管理-C02-创建校验失败-module-users-chromium/attachments/probe-C02-793ed6868532d6f08fa3b7e01ef91cee883edc62.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b07d--可用-module-process-designer-chromium/attachments/probe-D01-acbfe0f811bb517717a6b841a585892cbebff24c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4f5-可用-module-resource-requests-chromium/attachments/probe-D01-2e8e53337f638a07ab7cc317baa3d97366c245e0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7f3--im-即时通讯-P01-权限矩阵-module-im-chromium/attachments/probe-P01-b22bb94be6b4cf1a140ec1c9f11b2ce4b3ea633f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52d8f-校验-module-resource-requests-chromium/attachments/probe-D02-dbcf98c1134a088b83217a812d0c0a8650ac69a3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-538f0-色管理-C02-创建校验失败-module-roles-chromium/attachments/probe-C02-2f4ee0aa5a1a7bf30860781b2ab8e052c752a87c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-60bbd-管理-U02-更新权限-冲突-module-roles-chromium/attachments/probe-U02-0531249436aff73c81d0fc89355c4cbc7167ec8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bff7-理-D02-恢复或不可见校验-module-users-chromium/attachments/probe-D02-cfa483afa2a0dcba0b625f169d4ddfd4df7815e9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6d194-见校验-module-process-designer-chromium/attachments/probe-D02-ace63a12d5911b8f54a54b89d94362c9b7276535.json","e2e/test-results/crud-00-crud-runner-CRUD-严-72cf4--角色管理-U01-更新成功-module-roles-chromium/attachments/probe-U01-daf71b632d68b74b441594222818913f9937bd60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-77ec5-创建成功-module-stage-knowledge-chromium/attachments/probe-C01-073ec52dcaf122cc92ed77c881d6407f63e053ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f7f1--列表可读-module-admin-settings-chromium/attachments/probe-R01-1b19c02416b08eebec04e254505821f27bda570e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89494--冲突-module-process-designer-chromium/attachments/probe-U02-57053c2bcdfde404efd732026ff7bbb7c2a742c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89599-冲突-module-resource-requests-chromium/attachments/probe-U02-3bbd6461e4141361d2910d0d997a2174989df606.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d2e4-硬-可用-module-stage-knowledge-chromium/attachments/probe-D01-bcca5204eae3c340bcf2e5d455dde9e35cc10053.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8fa15-复-module-knowledge-feedback-chromium/attachments/probe-E01-768d744b990df78d05147237c0636c4ee771c1ed.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9d5c3-新成功-module-process-designer-chromium/attachments/probe-U01-b82cb3f43ec5fd03fbcf5e9a47076d4b327698f7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a99bb-m-即时通讯-C02-创建校验失败-module-im-chromium/attachments/probe-C02-fd074e16ad7f94b54706d083613b4b5d32b93e4b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4daf--权限矩阵-module-admin-settings-chromium/attachments/probe-P01-d0080ae80a82c103bcd848bca31d749b3dcc8352.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b8549-成功-module-resource-requests-chromium/attachments/probe-U01-ca13f11ed3d09b5def3fe7e441ad40110d2b0379.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4557--用户管理-U01-更新成功-module-users-chromium/attachments/probe-U01-712df3b828fbaea6fc759167308e86fa7855176f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c39-恢复-module-resource-requests-chromium/attachments/probe-E01-e9b591e744c63185541a625ceba5e5d973b6746b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c7867--角色管理-C01-创建成功-module-roles-chromium/attachments/probe-C01-7a7d119a902c3f458539ddaa114898e0a33f4d8f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc828--即时通讯-U02-更新权限-冲突-module-im-chromium/attachments/probe-U02-76760ce7a07288e361d11e3be6c77b61b817ee40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce2ac--详情可读-module-admin-settings-chromium/attachments/probe-R03-cea057b72b957fdb65cc5e3b674bfa2f05636e5e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d14d4--用户管理-E01-异常恢复-module-users-chromium/attachments/probe-E01-6169c2a0eaab0a87b4892d56e1c64902f64e0217.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3762-限-冲突-module-stage-knowledge-chromium/attachments/probe-U02-9e395cc67c38073bfd6eb6ad38fe5ac43a337d56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d6fb4-常恢复-module-process-designer-chromium/attachments/probe-E01-b1f8e178d5a774eddb298c119317b36e0414d60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de878--角色管理-E01-异常恢复-module-roles-chromium/attachments/probe-E01-bb017dd97b92cb05f37191c933e038af13a8c04a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e43a6-限矩阵-module-process-designer-chromium/attachments/probe-P01-e9df19eeca43b46dca36a135566329b6da44cacd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e4560-管理-U02-更新权限-冲突-module-users-chromium/attachments/probe-U02-a105db3f1ef20b6b8ba0ed401d244b376932736b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ea129-阵-module-knowledge-feedback-chromium/attachments/probe-P01-c3160dc84a9d7fea219587cb594dd8add36d515d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec3b8-验失败-module-process-designer-chromium/attachments/probe-C02-dae6185bd96e2e2c88c4bb9104517a939b2afb15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed28f-权限矩阵-module-stage-knowledge-chromium/attachments/probe-P01-703da6de6b8031b653cf5cb16f3656f251917838.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee943-成功-module-resource-requests-chromium/attachments/probe-C01-96dc059a7597ae051b9d321db1cb4b470806e6f4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eee91-用-module-knowledge-feedback-chromium/attachments/probe-D01-43d0c2e97c66fbd3301826ea68d66fce62cb7eb0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f3c4d-询筛选分页-module-admin-settings-chromium/attachments/probe-R02-55334ddef6735b6dddfc2d2e6143a089efb9be24.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f690b--D01-删除-软-硬-可用-module-users-chromium/attachments/probe-D01-6438fdd0fae658cd354e2761efa5b0065ab74607.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fabfb-建成功-module-process-designer-chromium/attachments/probe-C01-65e7119661d41d890e1f8d734662a8ce3b15268c.json","e2e/test-results/crud/probes/admin-settings-C01-1774228943803.json","e2e/test-results/crud/probes/admin-settings-C02-1774228945689.json","e2e/test-results/crud/probes/admin-settings-E01-1774228954200.json","e2e/test-results/crud/probes/admin-settings-P01-1774228952357.json","e2e/test-results/crud/probes/admin-settings-R01-1774228946846.json","e2e/test-results/crud/probes/admin-settings-R02-1774228948718.json","e2e/test-results/crud/probes/admin-settings-R03-1774228950565.json","e2e/test-results/crud/probes/admin-settings-U01-1774228956047.json","e2e/test-results/crud/probes/im-C02-1774228926548.json","e2e/test-results/crud/probes/im-E01-1774228936351.json","e2e/test-results/crud/probes/im-P01-1774228934107.json","e2e/test-results/crud/probes/im-U02-1774228939732.json","e2e/test-results/crud/probes/knowledge-feedback-D01-1774228819428.json","e2e/test-results/crud/probes/knowledge-feedback-D02-1774228821536.json","e2e/test-results/crud/probes/knowledge-feedback-E01-1774228817921.json","e2e/test-results/crud/probes/knowledge-feedback-P01-1774228815781.json","e2e/test-results/crud/probes/process-designer-C01-1774228822742.json","e2e/test-results/crud/probes/process-designer-C02-1774228824586.json","e2e/test-results/crud/probes/process-designer-D01-1774228839637.json","e2e/test-results/crud/probes/process-designer-D02-1774228841175.json","e2e/test-results/crud/probes/process-designer-E01-1774228834388.json","e2e/test-results/crud/probes/process-designer-P01-1774228832112.json","e2e/test-results/crud/probes/process-designer-U01-1774228835867.json","e2e/test-results/crud/probes/process-designer-U02-1774228837789.json","e2e/test-results/crud/probes/resource-requests-C01-1774228842926.json","e2e/test-results/crud/probes/resource-requests-C02-1774228844702.json","e2e/test-results/crud/probes/resource-requests-D01-1774228859373.json","e2e/test-results/crud/probes/resource-requests-D02-1774228861489.json","e2e/test-results/crud/probes/resource-requests-E01-1774228854515.json","e2e/test-results/crud/probes/resource-requests-P01-1774228852276.json","e2e/test-results/crud/probes/resource-requests-U01-1774228855843.json","e2e/test-results/crud/probes/resource-requests-U02-1774228857762.json","e2e/test-results/crud/probes/roles-C01-1774228862700.json","e2e/test-results/crud/probes/roles-C02-1774228864549.json","e2e/test-results/crud/probes/roles-D01-1774228879608.json","e2e/test-results/crud/probes/roles-D02-1774228881181.json","e2e/test-results/crud/probes/roles-E01-1774228874266.json","e2e/test-results/crud/probes/roles-P01-1774228872022.json","e2e/test-results/crud/probes/roles-U01-1774228875744.json","e2e/test-results/crud/probes/roles-U02-1774228877671.json","e2e/test-results/crud/probes/stage-knowledge-C01-1774228882938.json","e2e/test-results/crud/probes/stage-knowledge-C02-1774228884716.json","e2e/test-results/crud/probes/stage-knowledge-D01-1774228900165.json","e2e/test-results/crud/probes/stage-knowledge-D02-1774228901711.json","e2e/test-results/crud/probes/stage-knowledge-E01-1774228894714.json","e2e/test-results/crud/probes/stage-knowledge-P01-1774228892441.json","e2e/test-results/crud/probes/stage-knowledge-U01-1774228896206.json","e2e/test-results/crud/probes/stage-knowledge-U02-1774228898148.json","e2e/test-results/crud/probes/users-C01-1774228903774.json","e2e/test-results/crud/probes/users-C02-1774228905307.json","e2e/test-results/crud/probes/users-D01-1774228921548.json","e2e/test-results/crud/probes/users-D02-1774228923127.json","e2e/test-results/crud/probes/users-E01-1774228915372.json","e2e/test-results/crud/probes/users-P01-1774228913142.json","e2e/test-results/crud/probes/users-U01-1774228917209.json","e2e/test-results/crud/probes/users-U02-1774228919166.json","e2e/tests/quarantine/.gitkeep","frontend/src/composables/__tests__/useApiQuery.test.ts","frontend/src/router/modules/acquisition.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/router/modules/compat-redirects.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/dashboard.ts","frontend/src/router/modules/finance.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/marketing.ts","frontend/src/router/modules/sales.ts","frontend/src/router/modules/service.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/router/modules/system.ts","frontend/src/stores/__tests__/app.store.test.ts","frontend/src/stores/__tests__/im.store.test.ts","frontend/src/stores/__tests__/knowledge.store.test.ts","frontend/src/styles/_containers.scss","frontend/src/styles/layers.css","frontend/src/utils/echarts.ts"],"removed":["e2e/test-results/results.json"],"modified":[".github/workflows/ci.yml","backend/.env.example","backend/package.json","backend/scripts/audit-prisma-zod-contract.ts","backend/scripts/generate-rls-policies.ts","backend/src/config/env.ts","backend/src/config/kafka.ts","backend/src/consumers/__tests__/sales.consumer.test.ts","backend/src/main.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.test.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/campaigns/campaign.service.enhanced.test.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.test.ts","backend/src/modules/channels/channel.schema.test.ts","backend/src/modules/community-gamification/community-gamification.service.test.ts","backend/src/modules/community-materials/community-material.service.test.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/content-analytics/content-analytics.service.test.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customer-analytics/customer-analytics.service.test.ts","backend/src/modules/customer-balance/customer-balance.service.test.ts","backend/src/modules/financial-reports/financial-reports.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.test.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.test.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.test.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.test.ts","backend/src/modules/im/websocket/gateway.ts","backend/src/modules/im/websocket/health.ts","backend/src/modules/im/websocket/redis-adapter.ts","backend/src/modules/integration-services/integration-service.service.test.ts","backend/src/modules/lead-qualification/qualification.service.test.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.test.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.test.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/livestream/livestream.service.test.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.test.ts","backend/src/modules/marketing-content/marketing-content.service.test.ts","backend/src/modules/marketing-forms/marketing-form.service.test.ts","backend/src/modules/marketing-north-star/marketing-north-star.service.test.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.test.ts","backend/src/modules/marketing/marketing.service.test.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-statement.service.ts","backend/src/modules/pm/pm.service.test.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/quotes/quote-decompose.service.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/rma/rma.service.test.ts","backend/src/modules/sample-requests/sample-request.service.test.ts","backend/src/modules/serial-numbers/sn.service.test.ts","backend/src/modules/sms-marketing/sms-marketing.service.test.ts","backend/src/modules/social-interactions/social-interactions.service.test.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/services/__tests__/outbox-processor.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/src/shared/state-machines/__tests__/ai-task.machine.test.ts","backend/src/shared/state-machines/__tests__/contract.machine.test.ts","backend/src/shared/utils/biz-code.test.ts","backend/src/shared/utils/crud.ts","backend/tests/unit/process-core/workflow-e2e.test.ts","backend/tests/unit/services/lead.service.test.ts","backend/tests/unit/services/quote.service.test.ts","deploy/grafana/provisioning/datasources/datasources.yml","docker-compose.prod.yml","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/playwright.config.ts","e2e/test-results/.last-run.json","frontend/package.json","frontend/src/components/common/DataTable.vue","frontend/src/components/responsive/ResponsiveChart.vue","frontend/src/main.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/supplemental.ts","frontend/src/stores/auth.ts","frontend/src/styles/index.scss","frontend/src/views/ai-agents/autopilot/AITestCases.vue","frontend/src/views/ai-agents/components/AgentModelManager.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/campaigns/analytics/index.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/FunnelChart.vue","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/inventory/Analytics.vue","frontend/src/views/knowledge/components/KnowledgeGraph.vue","frontend/src/views/service-dashboard/components/SLAPanel.vue","frontend/src/views/service-dashboard/components/SatisfactionPanel.vue","frontend/src/views/service-dashboard/components/TicketStatsPanel.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/vite.config.ts","pnpm-lock.yaml"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1919936,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:52:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
22
|
1774229182
|
1774229206
|
0
|
1774229062
|
1774229665
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
7292
|
chore: comprehensive governance updates and test a chore: comprehensive governance updates and test artifacts...
|
6
|
5
|
e2e-tests.yml
|
7218
|
5
|
0
|
refs/heads/main
|
339ea969ec2633756fb1a155d47723d0f61396a4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","after":"339ea969ec2633756fb1a155d47723d0f61396a4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/df7b6f46170cb46db4771dd1e07991b0b13d90a0...339ea969ec2633756fb1a155d47723d0f61396a4","commits":[{"id":"339ea969ec2633756fb1a155d47723d0f61396a4","message":"chore: comprehensive governance updates and test artifacts\n\n- Add Prisma schema modularization and migration scripts\n- Add service test coverage across all modules (AI, alliance, community, marketing, etc.)\n- Add shared services (cache, custom-fields, dynamic-state-machine, encryption, etc.)\n- Add infrastructure configs (ClickHouse, Debezium, Tempo)\n- Add user manual and technical documentation with screenshots\n- Add router module organization for all centers\n- Add store/test coverage and Playwright artifacts\n- Update CI workflow, environment configs, and dependencies\n- Fix security issues in auth, kafka, and validation layers\n- Fix permission naming tests to expect kebab-case output\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/339ea969ec2633756fb1a155d47723d0f61396a4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T09:22:37+08:00","added":["backend/prisma/migrations/manual/create_dynamic_sm_and_custom_fields.sql","backend/prisma/migrations/manual/create_knowledge_embeddings.sql","backend/prisma/migrations/materialized_views.sql","backend/prisma/schema/_base.prisma","backend/prisma/schema/_enums.prisma","backend/prisma/schema/ai.prisma","backend/prisma/schema/alliance.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/customers.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/geo.prisma","backend/prisma/schema/hr.prisma","backend/prisma/schema/im.prisma","backend/prisma/schema/knowledge.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/livestream.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/products.prisma","backend/prisma/schema/project.prisma","backend/prisma/schema/renewals.prisma","backend/prisma/schema/sales.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/social.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/config/__tests__/kafka-router.test.ts","backend/src/config/tracing.ts","backend/src/modules/ai-copilot/ai-copilot.service.test.ts","backend/src/modules/alliance-analytics/alliance-analytics.service.test.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.test.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-products/alliance-product.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.test.ts","backend/src/modules/alliance-referrals/alliance-referral.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/approval-templates/approval-template.service.test.ts","backend/src/modules/campaign-targets/campaign-target.service.test.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.test.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.test.ts","backend/src/modules/community-activities/community-activity.service.test.ts","backend/src/modules/community-analytics/community-analytics.service.test.ts","backend/src/modules/community-fission/community-fission.service.test.ts","backend/src/modules/community-groups/community-group.service.test.ts","backend/src/modules/community-members/community-member.service.test.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.test.ts","backend/src/modules/content-categories/content-category.service.test.ts","backend/src/modules/content-copyright/content-copyright.service.test.ts","backend/src/modules/content-creation/content-creation.service.test.ts","backend/src/modules/content-distribution/content-distribution.service.test.ts","backend/src/modules/content-library/content-library.service.test.ts","backend/src/modules/content-review/content-review.service.test.ts","backend/src/modules/content-templates/content-template.service.test.ts","backend/src/modules/contract-templates/contract-template.service.test.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.test.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.test.ts","backend/src/modules/customer-journey/customer-journey.service.test.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.test.ts","backend/src/modules/customer-ltv/customer-ltv.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.test.ts","backend/src/modules/dimension-transform/dimension-transform.service.test.ts","backend/src/modules/disbursements/disbursement-record.service.test.ts","backend/src/modules/events/event.service.test.ts","backend/src/modules/finance/finance-credits.service.test.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-refunds.service.test.ts","backend/src/modules/finance/finance.service.test.ts","backend/src/modules/geo-analytics/geo-analytics.service.test.ts","backend/src/modules/geo-fences/geo-fences.service.test.ts","backend/src/modules/geo-keywords/geo-keyword.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.test.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.test.ts","backend/src/modules/hr/positions/positions.service.test.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.test.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.test.ts","backend/src/modules/livestream-products/livestream-product.service.test.ts","backend/src/modules/livestream-rooms/livestream-room.service.test.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.test.ts","backend/src/modules/livestream-scripts/livestream-script.service.test.ts","backend/src/modules/marketing-calendar/marketing-calendar.service.test.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.test.ts","backend/src/modules/marketing-matrix/matrix.service.test.ts","backend/src/modules/mdm/mdm.service.test.ts","backend/src/modules/menus/menu.service.test.ts","backend/src/modules/multi-touch-attribution/multi-touch-attribution.service.test.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.test.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.test.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.test.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.test.ts","backend/src/modules/reports/report.service.test.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.test.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.test.ts","backend/src/modules/self-operated-store/self-operated-store.service.test.ts","backend/src/modules/social-accounts/social-account.service.test.ts","backend/src/modules/social-auto-replies/social-auto-reply.service.test.ts","backend/src/modules/social-posts/social-post.service.test.ts","backend/src/modules/store-agency/store-agency.service.test.ts","backend/src/modules/suppliers/supplier.service.test.ts","backend/src/modules/video-calls/video-call.service.test.ts","backend/src/shared/middleware/__tests__/security-fixes.test.ts","backend/src/shared/middleware/field-encryption.middleware.ts","backend/src/shared/middleware/rate-limit.middleware.ts","backend/src/shared/services/__tests__/audit-log.service.test.ts","backend/src/shared/services/__tests__/custom-fields.service.test.ts","backend/src/shared/services/__tests__/dynamic-state-machine.service.test.ts","backend/src/shared/services/__tests__/list-cache.service.test.ts","backend/src/shared/services/__tests__/llm-gateway.service.test.ts","backend/src/shared/services/__tests__/prompt-registry.service.test.ts","backend/src/shared/services/abac-policy.service.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/services/custom-fields.service.ts","backend/src/shared/services/dynamic-state-machine.service.ts","backend/src/shared/services/field-encryption.service.ts","backend/src/shared/services/immutable-audit.service.ts","backend/src/shared/services/llm-gateway.service.ts","backend/src/shared/services/materialized-view.service.ts","backend/src/shared/services/prompt-registry.service.ts","backend/src/shared/services/rag-pipeline.service.ts","backend/src/shared/utils/__tests__/permission-normalizer.test.ts","backend/src/shared/utils/__tests__/validation-security.test.ts","backend/src/shared/utils/permission-normalizer.ts","deploy/clickhouse/config.xml","deploy/clickhouse/init.sql","deploy/debezium/register-connector.json","deploy/tempo/config.yaml","docker-compose.analytics.yml","docs/test-plan/TEST-PLAN.md","docs/user-manual/convert-tech-manual.mjs","docs/user-manual/convert-to-html.mjs","docs/user-manual/screenshots/01-login-2026-03-23T00-12-58-197Z.png","docs/user-manual/screenshots/02-dashboard-2026-03-23T00-13-11-223Z.png","docs/user-manual/screenshots/03-ai-agents-2026-03-23T00-13-44-706Z.png","docs/user-manual/screenshots/04-leads-2026-03-23T00-13-49-733Z.png","docs/user-manual/screenshots/05-lead-qualification-2026-03-23T00-13-55-424Z.png","docs/user-manual/screenshots/06-content-library-2026-03-23T00-14-01-180Z.png","docs/user-manual/screenshots/07-campaigns-2026-03-23T00-14-06-696Z.png","docs/user-manual/screenshots/08-opportunities-2026-03-23T00-14-12-799Z.png","docs/user-manual/screenshots/09-quotes-2026-03-23T00-14-20-564Z.png","docs/user-manual/screenshots/10-contracts-2026-03-23T00-14-26-796Z.png","docs/user-manual/screenshots/11-orders-2026-03-23T00-14-32-331Z.png","docs/user-manual/screenshots/12-stores-2026-03-23T00-14-37-745Z.png","docs/user-manual/screenshots/13-tickets-2026-03-23T00-14-43-846Z.png","docs/user-manual/screenshots/14-sla-2026-03-23T00-14-49-340Z.png","docs/user-manual/screenshots/15-ar-ledger-2026-03-23T00-14-54-842Z.png","docs/user-manual/screenshots/16-payments-2026-03-23T00-14-59-958Z.png","docs/user-manual/screenshots/17-purchase-orders-2026-03-23T00-15-06-034Z.png","docs/user-manual/screenshots/19-products-2026-03-23T00-15-17-479Z.png","docs/user-manual/screenshots/20-knowledge-2026-03-23T00-15-24-044Z.png","docs/user-manual/screenshots/21-approvals-2026-03-23T00-15-30-115Z.png","docs/user-manual/screenshots/22-hr-attendance-2026-03-23T00-15-36-643Z.png","docs/user-manual/screenshots/23-tenant-configs-2026-03-23T00-15-42-739Z.png","docs/user-manual/screenshots/25-roles-2026-03-23T00-15-56-801Z.png","docs/user-manual/screenshots/26-customers-2026-03-23T00-16-02-467Z.png","docs/user-manual/screenshots/27-im-2026-03-23T00-16-07-704Z.png","docs/user-manual/screenshots/tech-01-api-docs-2026-03-23T00-30-33-332Z.png","docs/user-manual/screenshots/tech-02-system-monitor-2026-03-23T00-30-42-759Z.png","docs/user-manual/screenshots/tech-03-event-logs-fix-2026-03-23T01-07-06-085Z.png","docs/user-manual/screenshots/tech-04-scheduled-jobs-2026-03-23T00-31-01-868Z.png","docs/user-manual/screenshots/tech-05-process-designer-2026-03-23T00-31-11-126Z.png","docs/user-manual/screenshots/tech-06-operation-logs-2026-03-23T00-31-20-335Z.png","docs/user-manual/screenshots/tech-07-settings-fix-2026-03-23T01-04-46-329Z.png","docs/user-manual/screenshots/tech-08-notification-configs-2026-03-23T00-31-38-845Z.png","docs/user-manual/technical-manual-content.md","docs/user-manual/technical-manual.html","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","docs/user-manual/巨嗨全域智库-技术开发手册-v1.0.pdf","docs/user-manual/巨嗨全域智库-用户使用手册-v1.0.pdf","e2e/QUARANTINE.md","e2e/playwright-report/data/0841239e09a180630fc75a988c85edb7d05739ad.md","e2e/playwright-report/data/db1fc0403d7c6af356a063a72ff6b4161a90d53a.png","e2e/test-results/.playwright-artifacts-240/040dee8f334f6c93fa788311a8961dae.png","e2e/test-results/.playwright-artifacts-240/058f808b72bfb61b392c5078d5509418.png","e2e/test-results/.playwright-artifacts-240/0893f4c2a4a7c014d48a306a37a5dc6f.png","e2e/test-results/.playwright-artifacts-240/1bd44c2c27b13a8e4e20754676e16753.png","e2e/test-results/.playwright-artifacts-240/202267e939ad0f07474e283188a20e7d.png","e2e/test-results/.playwright-artifacts-240/2643239379fd7e6fb2b3af6dacebc4fa.png","e2e/test-results/.playwright-artifacts-240/275d5fde4f54663504fbe6b3e84548d3.png","e2e/test-results/.playwright-artifacts-240/42867d3c5c17db159677472c69e89621.png","e2e/test-results/.playwright-artifacts-240/437c27fb2bacac72655c93b0b195c12b.png","e2e/test-results/.playwright-artifacts-240/4e1e7cc1649f584e86226ca11178f09d.png","e2e/test-results/.playwright-artifacts-240/505ec08f78c1ac4cfbd5a64a3e01ec29.png","e2e/test-results/.playwright-artifacts-240/50ad9cd6f3585ecf685f91c233f1100f.png","e2e/test-results/.playwright-artifacts-240/56d48ae872fca36631d1f464243747be.png","e2e/test-results/.playwright-artifacts-240/5be73b706dafcc86885ef501dccd65f9.png","e2e/test-results/.playwright-artifacts-240/61a48f54c74157d08f79a5c7638a2c75.png","e2e/test-results/.playwright-artifacts-240/67cbfdd34817fa76173eda99da253422.png","e2e/test-results/.playwright-artifacts-240/6de31eb46d49679d37fcb85e09bf50a7.png","e2e/test-results/.playwright-artifacts-240/719cc5c2833983e26d2e26fb6ecd1410.png","e2e/test-results/.playwright-artifacts-240/765d23b2babbdc342a5e33cda8d39a87.png","e2e/test-results/.playwright-artifacts-240/7f1c5b28525ac2cc41bc099e6f749ab3.png","e2e/test-results/.playwright-artifacts-240/800d3474ffbcfb84327a4cff203da5ab.png","e2e/test-results/.playwright-artifacts-240/82e93cc1f0a93cda9a36e89ffa14b831.png","e2e/test-results/.playwright-artifacts-240/834a6d7b46250bf3a7b6c74804572593.png","e2e/test-results/.playwright-artifacts-240/86a3a201ece1b35521f5b7cb565876c1.png","e2e/test-results/.playwright-artifacts-240/8ab300257837e88962f2a6b7027e13a0.png","e2e/test-results/.playwright-artifacts-240/941e36d46c2caceb2ea0fc70bed6bba5.png","e2e/test-results/.playwright-artifacts-240/9e77802004f48f7c693bc508c5d8d39b.png","e2e/test-results/.playwright-artifacts-240/a0e310742c0a3c96a02bdf2c7db7dfb2.png","e2e/test-results/.playwright-artifacts-240/c4f6a23e9cd556d8fa7d69f40bc122ac.png","e2e/test-results/.playwright-artifacts-240/c51c980a067ead90c72ee084ad8fc00a.png","e2e/test-results/.playwright-artifacts-240/d74a4495418c027fb3e4b838b4aa3521.png","e2e/test-results/.playwright-artifacts-240/dace6040beafd8d86a5baf4fe5f1ae2a.png","e2e/test-results/.playwright-artifacts-240/dce6caafe2e1fcdac2ee738369ed6098.png","e2e/test-results/.playwright-artifacts-240/df5df0fd3c83d8265e719acb6b3d0ee6.png","e2e/test-results/.playwright-artifacts-240/e07d7068d011403eeb553914cb5c364e.png","e2e/test-results/.playwright-artifacts-240/e5e82b734579c829a5939d96fcc05dff.png","e2e/test-results/.playwright-artifacts-240/e8cb101c527d05e5df6ca5fc2b904583.png","e2e/test-results/.playwright-artifacts-240/eaff6d849895b87797832af1a9a24d65.png","e2e/test-results/.playwright-artifacts-240/f0ff9429d9c71385cff328a94e1a703c.png","e2e/test-results/.playwright-artifacts-240/fba7d655d78e525212c958c6c2a7227d.png","e2e/test-results/.playwright-artifacts-241/094966347a6999bd858f5ab8a249f754.png","e2e/test-results/.playwright-artifacts-241/0b6068733b160e988728b3140bdbaef5.png","e2e/test-results/.playwright-artifacts-241/1bb8fb49ed8335c1df210ed0bbe9493c.png","e2e/test-results/.playwright-artifacts-241/1dc0352fb049eb5707b5ecdeb36e7588.png","e2e/test-results/.playwright-artifacts-241/248c7bde5073b7b22bc5737b59012f68.png","e2e/test-results/.playwright-artifacts-241/26e9b207b71a36018b2252efb70c0366.png","e2e/test-results/.playwright-artifacts-241/2ae009986a6d6b9b348e715140f0e05f.png","e2e/test-results/.playwright-artifacts-241/2e7643de8fce869a4dc6701b06f92045.png","e2e/test-results/.playwright-artifacts-241/34681405d2abf88b9b47e450f48ecaa3.png","e2e/test-results/.playwright-artifacts-241/45be60ad912dd46dfb7aa5cbee9f02d0.png","e2e/test-results/.playwright-artifacts-241/5bb07c90a274dac44963d8cceca8eb1e.png","e2e/test-results/.playwright-artifacts-241/5c81aa46578a6e4a399dcdf0d73ba8d3.png","e2e/test-results/.playwright-artifacts-241/643d257ac5cf926a92dfd4e67907a9dc.png","e2e/test-results/.playwright-artifacts-241/6454481b50c1adc6bc7e94d3fb946915.png","e2e/test-results/.playwright-artifacts-241/67232c5e7156aba881fa65d80af1207b.png","e2e/test-results/.playwright-artifacts-241/67d9026a171dc55ffc861a72ce9d4b2c.png","e2e/test-results/.playwright-artifacts-241/714aeb4c6b5950f311af88662c8b4424.png","e2e/test-results/.playwright-artifacts-241/7a8af77cb2620429282f057b7c7fd0ae.png","e2e/test-results/.playwright-artifacts-241/922282efa032ca16073c502056c2826f.png","e2e/test-results/.playwright-artifacts-241/9543fc36ad8580206d7a961590a7d83d.png","e2e/test-results/.playwright-artifacts-241/9c77f778e3b32c88fe3524c93a150de1.png","e2e/test-results/.playwright-artifacts-241/9c8a27ce50fdd70f043debd37db84261.png","e2e/test-results/.playwright-artifacts-241/9ce478697576abf803f23864fd3d01c7.png","e2e/test-results/.playwright-artifacts-241/a9df789309206957d3696bd33d4752b7.png","e2e/test-results/.playwright-artifacts-241/b16f350537ed50e46405ecd91275e9f4.png","e2e/test-results/.playwright-artifacts-241/b213a106fbdfe86fe5a2e40fd333aa0c.png","e2e/test-results/.playwright-artifacts-241/b82911d04e9ad9e3893351a21a56b011.png","e2e/test-results/.playwright-artifacts-241/b94da2213274548a93d16676dea24087.png","e2e/test-results/.playwright-artifacts-241/b98a93160e626ed6e3b05e7e527192fa.png","e2e/test-results/.playwright-artifacts-241/c2f7e527724d7e5eb8d379e3fbfc1b83.png","e2e/test-results/.playwright-artifacts-241/c800d08cc104e95000629104c11fd8b3.png","e2e/test-results/.playwright-artifacts-241/cd36bb67c1c05fedeac1923b06e6d4f5.png","e2e/test-results/.playwright-artifacts-241/d2ebbb7e8ca084380958c49f40f1bcac.png","e2e/test-results/.playwright-artifacts-241/d6ef796cc1833026cab7434b435084f4.png","e2e/test-results/.playwright-artifacts-241/dc49bd3538e061f12e7b17709d6bba0d.png","e2e/test-results/.playwright-artifacts-241/e014d348f300176842a83787a7f7938c.png","e2e/test-results/.playwright-artifacts-241/e8b738bc9925b35cacb65db8fd37bd27.png","e2e/test-results/.playwright-artifacts-241/ed833f2d058e02081a433bb71c5c71ca.png","e2e/test-results/.playwright-artifacts-241/f42b7455348166022fb51732079f16a2.png","e2e/test-results/.playwright-artifacts-241/f7ffcca2f8bd695dbd421e83dfd7dacb.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b88a-矩阵-module-resource-requests-chromium/attachments/probe-P01-828a9fe4a1cc10ad814b8901ea3f331dabb4f466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1445f--创建成功-module-admin-settings-chromium/attachments/probe-C01-b70ed60761f6c844c0724c90be9bd3a2e28f887e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-159b4-失败-module-resource-requests-chromium/attachments/probe-C02-579660baa87709a7140145510b380b58f4afc555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1a1ae--用户管理-P01-权限矩阵-module-users-chromium/attachments/probe-P01-21d61422e262180992f04fed0d6e1f58f4f8928a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ad44--异常恢复-module-admin-settings-chromium/attachments/probe-E01-167118b9260fa76b0a2a1f0fa96675e800dc6f74.json","e2e/test-results/crud-00-crud-runner-CRUD-严-20309-异常恢复-module-stage-knowledge-chromium/attachments/probe-E01-65c2d06fb134d7cb9f3931a7131cf0260ea97061.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22f29-理-D02-恢复或不可见校验-module-roles-chromium/attachments/probe-D02-d26e2d296f3e8407ccfd9c2cc2f24cf6829a8508.json","e2e/test-results/crud-00-crud-runner-CRUD-严-239e9-验-module-knowledge-feedback-chromium/attachments/probe-D02-e58bb6a96915688b8f2287bbb25bab2388293c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ba01-更新成功-module-stage-knowledge-chromium/attachments/probe-U01-208017e0ddf654dcec7c7e6ed78e75cdbcaeefe5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c5eb-建校验失败-module-admin-settings-chromium/attachments/probe-C02-c917accda05528170401af83fb11a330a3cbda4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34d7b-可见校验-module-stage-knowledge-chromium/attachments/probe-D02-821275ce5a1a2d3c0299a4438bc0551a6d53176c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34f0e--更新成功-module-admin-settings-chromium/attachments/probe-U01-f4a4e93fb88c2ef19abde8f7dd664879de695c9f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-365ba--用户管理-C01-创建成功-module-users-chromium/attachments/probe-C01-900190bda813dce7a5e62caaa492f5a3677f3e23.json","e2e/test-results/crud-00-crud-runner-CRUD-严-392a1--im-即时通讯-E01-异常恢复-module-im-chromium/attachments/probe-E01-fa3a07d4be5ae62afd985ab459bbd15a33a2fdef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a38c--D01-删除-软-硬-可用-module-roles-chromium/attachments/probe-D01-ae5282c3a94d95edce6b6b614e0f1c7bb0cacec0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4220e--角色管理-P01-权限矩阵-module-roles-chromium/attachments/probe-P01-bf40ed0eb839caf8e2dc359b3fbf41adc61a8186.json","e2e/test-results/crud-00-crud-runner-CRUD-严-43344-校验失败-module-stage-knowledge-chromium/attachments/probe-C02-c40333d9c899532c29747a98c3608a229f081c35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-460f0-户管理-C02-创建校验失败-module-users-chromium/attachments/probe-C02-793ed6868532d6f08fa3b7e01ef91cee883edc62.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b07d--可用-module-process-designer-chromium/attachments/probe-D01-acbfe0f811bb517717a6b841a585892cbebff24c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4f5-可用-module-resource-requests-chromium/attachments/probe-D01-2e8e53337f638a07ab7cc317baa3d97366c245e0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7f3--im-即时通讯-P01-权限矩阵-module-im-chromium/attachments/probe-P01-b22bb94be6b4cf1a140ec1c9f11b2ce4b3ea633f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52d8f-校验-module-resource-requests-chromium/attachments/probe-D02-dbcf98c1134a088b83217a812d0c0a8650ac69a3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-538f0-色管理-C02-创建校验失败-module-roles-chromium/attachments/probe-C02-2f4ee0aa5a1a7bf30860781b2ab8e052c752a87c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-60bbd-管理-U02-更新权限-冲突-module-roles-chromium/attachments/probe-U02-0531249436aff73c81d0fc89355c4cbc7167ec8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bff7-理-D02-恢复或不可见校验-module-users-chromium/attachments/probe-D02-cfa483afa2a0dcba0b625f169d4ddfd4df7815e9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6d194-见校验-module-process-designer-chromium/attachments/probe-D02-ace63a12d5911b8f54a54b89d94362c9b7276535.json","e2e/test-results/crud-00-crud-runner-CRUD-严-72cf4--角色管理-U01-更新成功-module-roles-chromium/attachments/probe-U01-daf71b632d68b74b441594222818913f9937bd60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-77ec5-创建成功-module-stage-knowledge-chromium/attachments/probe-C01-073ec52dcaf122cc92ed77c881d6407f63e053ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f7f1--列表可读-module-admin-settings-chromium/attachments/probe-R01-1b19c02416b08eebec04e254505821f27bda570e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89494--冲突-module-process-designer-chromium/attachments/probe-U02-57053c2bcdfde404efd732026ff7bbb7c2a742c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89599-冲突-module-resource-requests-chromium/attachments/probe-U02-3bbd6461e4141361d2910d0d997a2174989df606.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d2e4-硬-可用-module-stage-knowledge-chromium/attachments/probe-D01-bcca5204eae3c340bcf2e5d455dde9e35cc10053.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8fa15-复-module-knowledge-feedback-chromium/attachments/probe-E01-768d744b990df78d05147237c0636c4ee771c1ed.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9d5c3-新成功-module-process-designer-chromium/attachments/probe-U01-b82cb3f43ec5fd03fbcf5e9a47076d4b327698f7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a99bb-m-即时通讯-C02-创建校验失败-module-im-chromium/attachments/probe-C02-fd074e16ad7f94b54706d083613b4b5d32b93e4b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4daf--权限矩阵-module-admin-settings-chromium/attachments/probe-P01-d0080ae80a82c103bcd848bca31d749b3dcc8352.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b8549-成功-module-resource-requests-chromium/attachments/probe-U01-ca13f11ed3d09b5def3fe7e441ad40110d2b0379.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4557--用户管理-U01-更新成功-module-users-chromium/attachments/probe-U01-712df3b828fbaea6fc759167308e86fa7855176f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c39-恢复-module-resource-requests-chromium/attachments/probe-E01-e9b591e744c63185541a625ceba5e5d973b6746b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c7867--角色管理-C01-创建成功-module-roles-chromium/attachments/probe-C01-7a7d119a902c3f458539ddaa114898e0a33f4d8f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc828--即时通讯-U02-更新权限-冲突-module-im-chromium/attachments/probe-U02-76760ce7a07288e361d11e3be6c77b61b817ee40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce2ac--详情可读-module-admin-settings-chromium/attachments/probe-R03-cea057b72b957fdb65cc5e3b674bfa2f05636e5e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d14d4--用户管理-E01-异常恢复-module-users-chromium/attachments/probe-E01-6169c2a0eaab0a87b4892d56e1c64902f64e0217.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3762-限-冲突-module-stage-knowledge-chromium/attachments/probe-U02-9e395cc67c38073bfd6eb6ad38fe5ac43a337d56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d6fb4-常恢复-module-process-designer-chromium/attachments/probe-E01-b1f8e178d5a774eddb298c119317b36e0414d60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de878--角色管理-E01-异常恢复-module-roles-chromium/attachments/probe-E01-bb017dd97b92cb05f37191c933e038af13a8c04a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e43a6-限矩阵-module-process-designer-chromium/attachments/probe-P01-e9df19eeca43b46dca36a135566329b6da44cacd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e4560-管理-U02-更新权限-冲突-module-users-chromium/attachments/probe-U02-a105db3f1ef20b6b8ba0ed401d244b376932736b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ea129-阵-module-knowledge-feedback-chromium/attachments/probe-P01-c3160dc84a9d7fea219587cb594dd8add36d515d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec3b8-验失败-module-process-designer-chromium/attachments/probe-C02-dae6185bd96e2e2c88c4bb9104517a939b2afb15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed28f-权限矩阵-module-stage-knowledge-chromium/attachments/probe-P01-703da6de6b8031b653cf5cb16f3656f251917838.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee943-成功-module-resource-requests-chromium/attachments/probe-C01-96dc059a7597ae051b9d321db1cb4b470806e6f4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eee91-用-module-knowledge-feedback-chromium/attachments/probe-D01-43d0c2e97c66fbd3301826ea68d66fce62cb7eb0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f3c4d-询筛选分页-module-admin-settings-chromium/attachments/probe-R02-55334ddef6735b6dddfc2d2e6143a089efb9be24.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f690b--D01-删除-软-硬-可用-module-users-chromium/attachments/probe-D01-6438fdd0fae658cd354e2761efa5b0065ab74607.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fabfb-建成功-module-process-designer-chromium/attachments/probe-C01-65e7119661d41d890e1f8d734662a8ce3b15268c.json","e2e/test-results/crud/probes/admin-settings-C01-1774228943803.json","e2e/test-results/crud/probes/admin-settings-C02-1774228945689.json","e2e/test-results/crud/probes/admin-settings-E01-1774228954200.json","e2e/test-results/crud/probes/admin-settings-P01-1774228952357.json","e2e/test-results/crud/probes/admin-settings-R01-1774228946846.json","e2e/test-results/crud/probes/admin-settings-R02-1774228948718.json","e2e/test-results/crud/probes/admin-settings-R03-1774228950565.json","e2e/test-results/crud/probes/admin-settings-U01-1774228956047.json","e2e/test-results/crud/probes/im-C02-1774228926548.json","e2e/test-results/crud/probes/im-E01-1774228936351.json","e2e/test-results/crud/probes/im-P01-1774228934107.json","e2e/test-results/crud/probes/im-U02-1774228939732.json","e2e/test-results/crud/probes/knowledge-feedback-D01-1774228819428.json","e2e/test-results/crud/probes/knowledge-feedback-D02-1774228821536.json","e2e/test-results/crud/probes/knowledge-feedback-E01-1774228817921.json","e2e/test-results/crud/probes/knowledge-feedback-P01-1774228815781.json","e2e/test-results/crud/probes/process-designer-C01-1774228822742.json","e2e/test-results/crud/probes/process-designer-C02-1774228824586.json","e2e/test-results/crud/probes/process-designer-D01-1774228839637.json","e2e/test-results/crud/probes/process-designer-D02-1774228841175.json","e2e/test-results/crud/probes/process-designer-E01-1774228834388.json","e2e/test-results/crud/probes/process-designer-P01-1774228832112.json","e2e/test-results/crud/probes/process-designer-U01-1774228835867.json","e2e/test-results/crud/probes/process-designer-U02-1774228837789.json","e2e/test-results/crud/probes/resource-requests-C01-1774228842926.json","e2e/test-results/crud/probes/resource-requests-C02-1774228844702.json","e2e/test-results/crud/probes/resource-requests-D01-1774228859373.json","e2e/test-results/crud/probes/resource-requests-D02-1774228861489.json","e2e/test-results/crud/probes/resource-requests-E01-1774228854515.json","e2e/test-results/crud/probes/resource-requests-P01-1774228852276.json","e2e/test-results/crud/probes/resource-requests-U01-1774228855843.json","e2e/test-results/crud/probes/resource-requests-U02-1774228857762.json","e2e/test-results/crud/probes/roles-C01-1774228862700.json","e2e/test-results/crud/probes/roles-C02-1774228864549.json","e2e/test-results/crud/probes/roles-D01-1774228879608.json","e2e/test-results/crud/probes/roles-D02-1774228881181.json","e2e/test-results/crud/probes/roles-E01-1774228874266.json","e2e/test-results/crud/probes/roles-P01-1774228872022.json","e2e/test-results/crud/probes/roles-U01-1774228875744.json","e2e/test-results/crud/probes/roles-U02-1774228877671.json","e2e/test-results/crud/probes/stage-knowledge-C01-1774228882938.json","e2e/test-results/crud/probes/stage-knowledge-C02-1774228884716.json","e2e/test-results/crud/probes/stage-knowledge-D01-1774228900165.json","e2e/test-results/crud/probes/stage-knowledge-D02-1774228901711.json","e2e/test-results/crud/probes/stage-knowledge-E01-1774228894714.json","e2e/test-results/crud/probes/stage-knowledge-P01-1774228892441.json","e2e/test-results/crud/probes/stage-knowledge-U01-1774228896206.json","e2e/test-results/crud/probes/stage-knowledge-U02-1774228898148.json","e2e/test-results/crud/probes/users-C01-1774228903774.json","e2e/test-results/crud/probes/users-C02-1774228905307.json","e2e/test-results/crud/probes/users-D01-1774228921548.json","e2e/test-results/crud/probes/users-D02-1774228923127.json","e2e/test-results/crud/probes/users-E01-1774228915372.json","e2e/test-results/crud/probes/users-P01-1774228913142.json","e2e/test-results/crud/probes/users-U01-1774228917209.json","e2e/test-results/crud/probes/users-U02-1774228919166.json","e2e/tests/quarantine/.gitkeep","frontend/src/composables/__tests__/useApiQuery.test.ts","frontend/src/router/modules/acquisition.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/router/modules/compat-redirects.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/dashboard.ts","frontend/src/router/modules/finance.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/marketing.ts","frontend/src/router/modules/sales.ts","frontend/src/router/modules/service.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/router/modules/system.ts","frontend/src/stores/__tests__/app.store.test.ts","frontend/src/stores/__tests__/im.store.test.ts","frontend/src/stores/__tests__/knowledge.store.test.ts","frontend/src/styles/_containers.scss","frontend/src/styles/layers.css","frontend/src/utils/echarts.ts"],"removed":["e2e/test-results/results.json"],"modified":[".github/workflows/ci.yml","backend/.env.example","backend/package.json","backend/scripts/audit-prisma-zod-contract.ts","backend/scripts/generate-rls-policies.ts","backend/src/config/env.ts","backend/src/config/kafka.ts","backend/src/consumers/__tests__/sales.consumer.test.ts","backend/src/main.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.test.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/campaigns/campaign.service.enhanced.test.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.test.ts","backend/src/modules/channels/channel.schema.test.ts","backend/src/modules/community-gamification/community-gamification.service.test.ts","backend/src/modules/community-materials/community-material.service.test.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/content-analytics/content-analytics.service.test.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customer-analytics/customer-analytics.service.test.ts","backend/src/modules/customer-balance/customer-balance.service.test.ts","backend/src/modules/financial-reports/financial-reports.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.test.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.test.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.test.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.test.ts","backend/src/modules/im/websocket/gateway.ts","backend/src/modules/im/websocket/health.ts","backend/src/modules/im/websocket/redis-adapter.ts","backend/src/modules/integration-services/integration-service.service.test.ts","backend/src/modules/lead-qualification/qualification.service.test.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.test.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.test.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/livestream/livestream.service.test.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.test.ts","backend/src/modules/marketing-content/marketing-content.service.test.ts","backend/src/modules/marketing-forms/marketing-form.service.test.ts","backend/src/modules/marketing-north-star/marketing-north-star.service.test.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.test.ts","backend/src/modules/marketing/marketing.service.test.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-statement.service.ts","backend/src/modules/pm/pm.service.test.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/quotes/quote-decompose.service.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/rma/rma.service.test.ts","backend/src/modules/sample-requests/sample-request.service.test.ts","backend/src/modules/serial-numbers/sn.service.test.ts","backend/src/modules/sms-marketing/sms-marketing.service.test.ts","backend/src/modules/social-interactions/social-interactions.service.test.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/services/__tests__/outbox-processor.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/src/shared/state-machines/__tests__/ai-task.machine.test.ts","backend/src/shared/state-machines/__tests__/contract.machine.test.ts","backend/src/shared/utils/biz-code.test.ts","backend/src/shared/utils/crud.ts","backend/tests/unit/process-core/workflow-e2e.test.ts","backend/tests/unit/services/lead.service.test.ts","backend/tests/unit/services/quote.service.test.ts","deploy/grafana/provisioning/datasources/datasources.yml","docker-compose.prod.yml","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/playwright.config.ts","e2e/test-results/.last-run.json","frontend/package.json","frontend/src/components/common/DataTable.vue","frontend/src/components/responsive/ResponsiveChart.vue","frontend/src/main.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/supplemental.ts","frontend/src/stores/auth.ts","frontend/src/styles/index.scss","frontend/src/views/ai-agents/autopilot/AITestCases.vue","frontend/src/views/ai-agents/components/AgentModelManager.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/campaigns/analytics/index.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/FunnelChart.vue","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/inventory/Analytics.vue","frontend/src/views/knowledge/components/KnowledgeGraph.vue","frontend/src/views/service-dashboard/components/SLAPanel.vue","frontend/src/views/service-dashboard/components/SatisfactionPanel.vue","frontend/src/views/service-dashboard/components/TicketStatsPanel.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/vite.config.ts","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"339ea969ec2633756fb1a155d47723d0f61396a4","message":"chore: comprehensive governance updates and test artifacts\n\n- Add Prisma schema modularization and migration scripts\n- Add service test coverage across all modules (AI, alliance, community, marketing, etc.)\n- Add shared services (cache, custom-fields, dynamic-state-machine, encryption, etc.)\n- Add infrastructure configs (ClickHouse, Debezium, Tempo)\n- Add user manual and technical documentation with screenshots\n- Add router module organization for all centers\n- Add store/test coverage and Playwright artifacts\n- Update CI workflow, environment configs, and dependencies\n- Fix security issues in auth, kafka, and validation layers\n- Fix permission naming tests to expect kebab-case output\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/339ea969ec2633756fb1a155d47723d0f61396a4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T09:22:37+08:00","added":["backend/prisma/migrations/manual/create_dynamic_sm_and_custom_fields.sql","backend/prisma/migrations/manual/create_knowledge_embeddings.sql","backend/prisma/migrations/materialized_views.sql","backend/prisma/schema/_base.prisma","backend/prisma/schema/_enums.prisma","backend/prisma/schema/ai.prisma","backend/prisma/schema/alliance.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/customers.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/geo.prisma","backend/prisma/schema/hr.prisma","backend/prisma/schema/im.prisma","backend/prisma/schema/knowledge.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/livestream.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/products.prisma","backend/prisma/schema/project.prisma","backend/prisma/schema/renewals.prisma","backend/prisma/schema/sales.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/social.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/config/__tests__/kafka-router.test.ts","backend/src/config/tracing.ts","backend/src/modules/ai-copilot/ai-copilot.service.test.ts","backend/src/modules/alliance-analytics/alliance-analytics.service.test.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.test.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-products/alliance-product.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.test.ts","backend/src/modules/alliance-referrals/alliance-referral.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/approval-templates/approval-template.service.test.ts","backend/src/modules/campaign-targets/campaign-target.service.test.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.test.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.test.ts","backend/src/modules/community-activities/community-activity.service.test.ts","backend/src/modules/community-analytics/community-analytics.service.test.ts","backend/src/modules/community-fission/community-fission.service.test.ts","backend/src/modules/community-groups/community-group.service.test.ts","backend/src/modules/community-members/community-member.service.test.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.test.ts","backend/src/modules/content-categories/content-category.service.test.ts","backend/src/modules/content-copyright/content-copyright.service.test.ts","backend/src/modules/content-creation/content-creation.service.test.ts","backend/src/modules/content-distribution/content-distribution.service.test.ts","backend/src/modules/content-library/content-library.service.test.ts","backend/src/modules/content-review/content-review.service.test.ts","backend/src/modules/content-templates/content-template.service.test.ts","backend/src/modules/contract-templates/contract-template.service.test.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.test.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.test.ts","backend/src/modules/customer-journey/customer-journey.service.test.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.test.ts","backend/src/modules/customer-ltv/customer-ltv.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.test.ts","backend/src/modules/dimension-transform/dimension-transform.service.test.ts","backend/src/modules/disbursements/disbursement-record.service.test.ts","backend/src/modules/events/event.service.test.ts","backend/src/modules/finance/finance-credits.service.test.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-refunds.service.test.ts","backend/src/modules/finance/finance.service.test.ts","backend/src/modules/geo-analytics/geo-analytics.service.test.ts","backend/src/modules/geo-fences/geo-fences.service.test.ts","backend/src/modules/geo-keywords/geo-keyword.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.test.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.test.ts","backend/src/modules/hr/positions/positions.service.test.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.test.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.test.ts","backend/src/modules/livestream-products/livestream-product.service.test.ts","backend/src/modules/livestream-rooms/livestream-room.service.test.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.test.ts","backend/src/modules/livestream-scripts/livestream-script.service.test.ts","backend/src/modules/marketing-calendar/marketing-calendar.service.test.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.test.ts","backend/src/modules/marketing-matrix/matrix.service.test.ts","backend/src/modules/mdm/mdm.service.test.ts","backend/src/modules/menus/menu.service.test.ts","backend/src/modules/multi-touch-attribution/multi-touch-attribution.service.test.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.test.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.test.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.test.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.test.ts","backend/src/modules/reports/report.service.test.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.test.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.test.ts","backend/src/modules/self-operated-store/self-operated-store.service.test.ts","backend/src/modules/social-accounts/social-account.service.test.ts","backend/src/modules/social-auto-replies/social-auto-reply.service.test.ts","backend/src/modules/social-posts/social-post.service.test.ts","backend/src/modules/store-agency/store-agency.service.test.ts","backend/src/modules/suppliers/supplier.service.test.ts","backend/src/modules/video-calls/video-call.service.test.ts","backend/src/shared/middleware/__tests__/security-fixes.test.ts","backend/src/shared/middleware/field-encryption.middleware.ts","backend/src/shared/middleware/rate-limit.middleware.ts","backend/src/shared/services/__tests__/audit-log.service.test.ts","backend/src/shared/services/__tests__/custom-fields.service.test.ts","backend/src/shared/services/__tests__/dynamic-state-machine.service.test.ts","backend/src/shared/services/__tests__/list-cache.service.test.ts","backend/src/shared/services/__tests__/llm-gateway.service.test.ts","backend/src/shared/services/__tests__/prompt-registry.service.test.ts","backend/src/shared/services/abac-policy.service.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/services/custom-fields.service.ts","backend/src/shared/services/dynamic-state-machine.service.ts","backend/src/shared/services/field-encryption.service.ts","backend/src/shared/services/immutable-audit.service.ts","backend/src/shared/services/llm-gateway.service.ts","backend/src/shared/services/materialized-view.service.ts","backend/src/shared/services/prompt-registry.service.ts","backend/src/shared/services/rag-pipeline.service.ts","backend/src/shared/utils/__tests__/permission-normalizer.test.ts","backend/src/shared/utils/__tests__/validation-security.test.ts","backend/src/shared/utils/permission-normalizer.ts","deploy/clickhouse/config.xml","deploy/clickhouse/init.sql","deploy/debezium/register-connector.json","deploy/tempo/config.yaml","docker-compose.analytics.yml","docs/test-plan/TEST-PLAN.md","docs/user-manual/convert-tech-manual.mjs","docs/user-manual/convert-to-html.mjs","docs/user-manual/screenshots/01-login-2026-03-23T00-12-58-197Z.png","docs/user-manual/screenshots/02-dashboard-2026-03-23T00-13-11-223Z.png","docs/user-manual/screenshots/03-ai-agents-2026-03-23T00-13-44-706Z.png","docs/user-manual/screenshots/04-leads-2026-03-23T00-13-49-733Z.png","docs/user-manual/screenshots/05-lead-qualification-2026-03-23T00-13-55-424Z.png","docs/user-manual/screenshots/06-content-library-2026-03-23T00-14-01-180Z.png","docs/user-manual/screenshots/07-campaigns-2026-03-23T00-14-06-696Z.png","docs/user-manual/screenshots/08-opportunities-2026-03-23T00-14-12-799Z.png","docs/user-manual/screenshots/09-quotes-2026-03-23T00-14-20-564Z.png","docs/user-manual/screenshots/10-contracts-2026-03-23T00-14-26-796Z.png","docs/user-manual/screenshots/11-orders-2026-03-23T00-14-32-331Z.png","docs/user-manual/screenshots/12-stores-2026-03-23T00-14-37-745Z.png","docs/user-manual/screenshots/13-tickets-2026-03-23T00-14-43-846Z.png","docs/user-manual/screenshots/14-sla-2026-03-23T00-14-49-340Z.png","docs/user-manual/screenshots/15-ar-ledger-2026-03-23T00-14-54-842Z.png","docs/user-manual/screenshots/16-payments-2026-03-23T00-14-59-958Z.png","docs/user-manual/screenshots/17-purchase-orders-2026-03-23T00-15-06-034Z.png","docs/user-manual/screenshots/19-products-2026-03-23T00-15-17-479Z.png","docs/user-manual/screenshots/20-knowledge-2026-03-23T00-15-24-044Z.png","docs/user-manual/screenshots/21-approvals-2026-03-23T00-15-30-115Z.png","docs/user-manual/screenshots/22-hr-attendance-2026-03-23T00-15-36-643Z.png","docs/user-manual/screenshots/23-tenant-configs-2026-03-23T00-15-42-739Z.png","docs/user-manual/screenshots/25-roles-2026-03-23T00-15-56-801Z.png","docs/user-manual/screenshots/26-customers-2026-03-23T00-16-02-467Z.png","docs/user-manual/screenshots/27-im-2026-03-23T00-16-07-704Z.png","docs/user-manual/screenshots/tech-01-api-docs-2026-03-23T00-30-33-332Z.png","docs/user-manual/screenshots/tech-02-system-monitor-2026-03-23T00-30-42-759Z.png","docs/user-manual/screenshots/tech-03-event-logs-fix-2026-03-23T01-07-06-085Z.png","docs/user-manual/screenshots/tech-04-scheduled-jobs-2026-03-23T00-31-01-868Z.png","docs/user-manual/screenshots/tech-05-process-designer-2026-03-23T00-31-11-126Z.png","docs/user-manual/screenshots/tech-06-operation-logs-2026-03-23T00-31-20-335Z.png","docs/user-manual/screenshots/tech-07-settings-fix-2026-03-23T01-04-46-329Z.png","docs/user-manual/screenshots/tech-08-notification-configs-2026-03-23T00-31-38-845Z.png","docs/user-manual/technical-manual-content.md","docs/user-manual/technical-manual.html","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","docs/user-manual/巨嗨全域智库-技术开发手册-v1.0.pdf","docs/user-manual/巨嗨全域智库-用户使用手册-v1.0.pdf","e2e/QUARANTINE.md","e2e/playwright-report/data/0841239e09a180630fc75a988c85edb7d05739ad.md","e2e/playwright-report/data/db1fc0403d7c6af356a063a72ff6b4161a90d53a.png","e2e/test-results/.playwright-artifacts-240/040dee8f334f6c93fa788311a8961dae.png","e2e/test-results/.playwright-artifacts-240/058f808b72bfb61b392c5078d5509418.png","e2e/test-results/.playwright-artifacts-240/0893f4c2a4a7c014d48a306a37a5dc6f.png","e2e/test-results/.playwright-artifacts-240/1bd44c2c27b13a8e4e20754676e16753.png","e2e/test-results/.playwright-artifacts-240/202267e939ad0f07474e283188a20e7d.png","e2e/test-results/.playwright-artifacts-240/2643239379fd7e6fb2b3af6dacebc4fa.png","e2e/test-results/.playwright-artifacts-240/275d5fde4f54663504fbe6b3e84548d3.png","e2e/test-results/.playwright-artifacts-240/42867d3c5c17db159677472c69e89621.png","e2e/test-results/.playwright-artifacts-240/437c27fb2bacac72655c93b0b195c12b.png","e2e/test-results/.playwright-artifacts-240/4e1e7cc1649f584e86226ca11178f09d.png","e2e/test-results/.playwright-artifacts-240/505ec08f78c1ac4cfbd5a64a3e01ec29.png","e2e/test-results/.playwright-artifacts-240/50ad9cd6f3585ecf685f91c233f1100f.png","e2e/test-results/.playwright-artifacts-240/56d48ae872fca36631d1f464243747be.png","e2e/test-results/.playwright-artifacts-240/5be73b706dafcc86885ef501dccd65f9.png","e2e/test-results/.playwright-artifacts-240/61a48f54c74157d08f79a5c7638a2c75.png","e2e/test-results/.playwright-artifacts-240/67cbfdd34817fa76173eda99da253422.png","e2e/test-results/.playwright-artifacts-240/6de31eb46d49679d37fcb85e09bf50a7.png","e2e/test-results/.playwright-artifacts-240/719cc5c2833983e26d2e26fb6ecd1410.png","e2e/test-results/.playwright-artifacts-240/765d23b2babbdc342a5e33cda8d39a87.png","e2e/test-results/.playwright-artifacts-240/7f1c5b28525ac2cc41bc099e6f749ab3.png","e2e/test-results/.playwright-artifacts-240/800d3474ffbcfb84327a4cff203da5ab.png","e2e/test-results/.playwright-artifacts-240/82e93cc1f0a93cda9a36e89ffa14b831.png","e2e/test-results/.playwright-artifacts-240/834a6d7b46250bf3a7b6c74804572593.png","e2e/test-results/.playwright-artifacts-240/86a3a201ece1b35521f5b7cb565876c1.png","e2e/test-results/.playwright-artifacts-240/8ab300257837e88962f2a6b7027e13a0.png","e2e/test-results/.playwright-artifacts-240/941e36d46c2caceb2ea0fc70bed6bba5.png","e2e/test-results/.playwright-artifacts-240/9e77802004f48f7c693bc508c5d8d39b.png","e2e/test-results/.playwright-artifacts-240/a0e310742c0a3c96a02bdf2c7db7dfb2.png","e2e/test-results/.playwright-artifacts-240/c4f6a23e9cd556d8fa7d69f40bc122ac.png","e2e/test-results/.playwright-artifacts-240/c51c980a067ead90c72ee084ad8fc00a.png","e2e/test-results/.playwright-artifacts-240/d74a4495418c027fb3e4b838b4aa3521.png","e2e/test-results/.playwright-artifacts-240/dace6040beafd8d86a5baf4fe5f1ae2a.png","e2e/test-results/.playwright-artifacts-240/dce6caafe2e1fcdac2ee738369ed6098.png","e2e/test-results/.playwright-artifacts-240/df5df0fd3c83d8265e719acb6b3d0ee6.png","e2e/test-results/.playwright-artifacts-240/e07d7068d011403eeb553914cb5c364e.png","e2e/test-results/.playwright-artifacts-240/e5e82b734579c829a5939d96fcc05dff.png","e2e/test-results/.playwright-artifacts-240/e8cb101c527d05e5df6ca5fc2b904583.png","e2e/test-results/.playwright-artifacts-240/eaff6d849895b87797832af1a9a24d65.png","e2e/test-results/.playwright-artifacts-240/f0ff9429d9c71385cff328a94e1a703c.png","e2e/test-results/.playwright-artifacts-240/fba7d655d78e525212c958c6c2a7227d.png","e2e/test-results/.playwright-artifacts-241/094966347a6999bd858f5ab8a249f754.png","e2e/test-results/.playwright-artifacts-241/0b6068733b160e988728b3140bdbaef5.png","e2e/test-results/.playwright-artifacts-241/1bb8fb49ed8335c1df210ed0bbe9493c.png","e2e/test-results/.playwright-artifacts-241/1dc0352fb049eb5707b5ecdeb36e7588.png","e2e/test-results/.playwright-artifacts-241/248c7bde5073b7b22bc5737b59012f68.png","e2e/test-results/.playwright-artifacts-241/26e9b207b71a36018b2252efb70c0366.png","e2e/test-results/.playwright-artifacts-241/2ae009986a6d6b9b348e715140f0e05f.png","e2e/test-results/.playwright-artifacts-241/2e7643de8fce869a4dc6701b06f92045.png","e2e/test-results/.playwright-artifacts-241/34681405d2abf88b9b47e450f48ecaa3.png","e2e/test-results/.playwright-artifacts-241/45be60ad912dd46dfb7aa5cbee9f02d0.png","e2e/test-results/.playwright-artifacts-241/5bb07c90a274dac44963d8cceca8eb1e.png","e2e/test-results/.playwright-artifacts-241/5c81aa46578a6e4a399dcdf0d73ba8d3.png","e2e/test-results/.playwright-artifacts-241/643d257ac5cf926a92dfd4e67907a9dc.png","e2e/test-results/.playwright-artifacts-241/6454481b50c1adc6bc7e94d3fb946915.png","e2e/test-results/.playwright-artifacts-241/67232c5e7156aba881fa65d80af1207b.png","e2e/test-results/.playwright-artifacts-241/67d9026a171dc55ffc861a72ce9d4b2c.png","e2e/test-results/.playwright-artifacts-241/714aeb4c6b5950f311af88662c8b4424.png","e2e/test-results/.playwright-artifacts-241/7a8af77cb2620429282f057b7c7fd0ae.png","e2e/test-results/.playwright-artifacts-241/922282efa032ca16073c502056c2826f.png","e2e/test-results/.playwright-artifacts-241/9543fc36ad8580206d7a961590a7d83d.png","e2e/test-results/.playwright-artifacts-241/9c77f778e3b32c88fe3524c93a150de1.png","e2e/test-results/.playwright-artifacts-241/9c8a27ce50fdd70f043debd37db84261.png","e2e/test-results/.playwright-artifacts-241/9ce478697576abf803f23864fd3d01c7.png","e2e/test-results/.playwright-artifacts-241/a9df789309206957d3696bd33d4752b7.png","e2e/test-results/.playwright-artifacts-241/b16f350537ed50e46405ecd91275e9f4.png","e2e/test-results/.playwright-artifacts-241/b213a106fbdfe86fe5a2e40fd333aa0c.png","e2e/test-results/.playwright-artifacts-241/b82911d04e9ad9e3893351a21a56b011.png","e2e/test-results/.playwright-artifacts-241/b94da2213274548a93d16676dea24087.png","e2e/test-results/.playwright-artifacts-241/b98a93160e626ed6e3b05e7e527192fa.png","e2e/test-results/.playwright-artifacts-241/c2f7e527724d7e5eb8d379e3fbfc1b83.png","e2e/test-results/.playwright-artifacts-241/c800d08cc104e95000629104c11fd8b3.png","e2e/test-results/.playwright-artifacts-241/cd36bb67c1c05fedeac1923b06e6d4f5.png","e2e/test-results/.playwright-artifacts-241/d2ebbb7e8ca084380958c49f40f1bcac.png","e2e/test-results/.playwright-artifacts-241/d6ef796cc1833026cab7434b435084f4.png","e2e/test-results/.playwright-artifacts-241/dc49bd3538e061f12e7b17709d6bba0d.png","e2e/test-results/.playwright-artifacts-241/e014d348f300176842a83787a7f7938c.png","e2e/test-results/.playwright-artifacts-241/e8b738bc9925b35cacb65db8fd37bd27.png","e2e/test-results/.playwright-artifacts-241/ed833f2d058e02081a433bb71c5c71ca.png","e2e/test-results/.playwright-artifacts-241/f42b7455348166022fb51732079f16a2.png","e2e/test-results/.playwright-artifacts-241/f7ffcca2f8bd695dbd421e83dfd7dacb.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b88a-矩阵-module-resource-requests-chromium/attachments/probe-P01-828a9fe4a1cc10ad814b8901ea3f331dabb4f466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1445f--创建成功-module-admin-settings-chromium/attachments/probe-C01-b70ed60761f6c844c0724c90be9bd3a2e28f887e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-159b4-失败-module-resource-requests-chromium/attachments/probe-C02-579660baa87709a7140145510b380b58f4afc555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1a1ae--用户管理-P01-权限矩阵-module-users-chromium/attachments/probe-P01-21d61422e262180992f04fed0d6e1f58f4f8928a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ad44--异常恢复-module-admin-settings-chromium/attachments/probe-E01-167118b9260fa76b0a2a1f0fa96675e800dc6f74.json","e2e/test-results/crud-00-crud-runner-CRUD-严-20309-异常恢复-module-stage-knowledge-chromium/attachments/probe-E01-65c2d06fb134d7cb9f3931a7131cf0260ea97061.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22f29-理-D02-恢复或不可见校验-module-roles-chromium/attachments/probe-D02-d26e2d296f3e8407ccfd9c2cc2f24cf6829a8508.json","e2e/test-results/crud-00-crud-runner-CRUD-严-239e9-验-module-knowledge-feedback-chromium/attachments/probe-D02-e58bb6a96915688b8f2287bbb25bab2388293c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ba01-更新成功-module-stage-knowledge-chromium/attachments/probe-U01-208017e0ddf654dcec7c7e6ed78e75cdbcaeefe5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c5eb-建校验失败-module-admin-settings-chromium/attachments/probe-C02-c917accda05528170401af83fb11a330a3cbda4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34d7b-可见校验-module-stage-knowledge-chromium/attachments/probe-D02-821275ce5a1a2d3c0299a4438bc0551a6d53176c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34f0e--更新成功-module-admin-settings-chromium/attachments/probe-U01-f4a4e93fb88c2ef19abde8f7dd664879de695c9f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-365ba--用户管理-C01-创建成功-module-users-chromium/attachments/probe-C01-900190bda813dce7a5e62caaa492f5a3677f3e23.json","e2e/test-results/crud-00-crud-runner-CRUD-严-392a1--im-即时通讯-E01-异常恢复-module-im-chromium/attachments/probe-E01-fa3a07d4be5ae62afd985ab459bbd15a33a2fdef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a38c--D01-删除-软-硬-可用-module-roles-chromium/attachments/probe-D01-ae5282c3a94d95edce6b6b614e0f1c7bb0cacec0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4220e--角色管理-P01-权限矩阵-module-roles-chromium/attachments/probe-P01-bf40ed0eb839caf8e2dc359b3fbf41adc61a8186.json","e2e/test-results/crud-00-crud-runner-CRUD-严-43344-校验失败-module-stage-knowledge-chromium/attachments/probe-C02-c40333d9c899532c29747a98c3608a229f081c35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-460f0-户管理-C02-创建校验失败-module-users-chromium/attachments/probe-C02-793ed6868532d6f08fa3b7e01ef91cee883edc62.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b07d--可用-module-process-designer-chromium/attachments/probe-D01-acbfe0f811bb517717a6b841a585892cbebff24c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4f5-可用-module-resource-requests-chromium/attachments/probe-D01-2e8e53337f638a07ab7cc317baa3d97366c245e0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7f3--im-即时通讯-P01-权限矩阵-module-im-chromium/attachments/probe-P01-b22bb94be6b4cf1a140ec1c9f11b2ce4b3ea633f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52d8f-校验-module-resource-requests-chromium/attachments/probe-D02-dbcf98c1134a088b83217a812d0c0a8650ac69a3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-538f0-色管理-C02-创建校验失败-module-roles-chromium/attachments/probe-C02-2f4ee0aa5a1a7bf30860781b2ab8e052c752a87c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-60bbd-管理-U02-更新权限-冲突-module-roles-chromium/attachments/probe-U02-0531249436aff73c81d0fc89355c4cbc7167ec8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bff7-理-D02-恢复或不可见校验-module-users-chromium/attachments/probe-D02-cfa483afa2a0dcba0b625f169d4ddfd4df7815e9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6d194-见校验-module-process-designer-chromium/attachments/probe-D02-ace63a12d5911b8f54a54b89d94362c9b7276535.json","e2e/test-results/crud-00-crud-runner-CRUD-严-72cf4--角色管理-U01-更新成功-module-roles-chromium/attachments/probe-U01-daf71b632d68b74b441594222818913f9937bd60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-77ec5-创建成功-module-stage-knowledge-chromium/attachments/probe-C01-073ec52dcaf122cc92ed77c881d6407f63e053ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f7f1--列表可读-module-admin-settings-chromium/attachments/probe-R01-1b19c02416b08eebec04e254505821f27bda570e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89494--冲突-module-process-designer-chromium/attachments/probe-U02-57053c2bcdfde404efd732026ff7bbb7c2a742c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89599-冲突-module-resource-requests-chromium/attachments/probe-U02-3bbd6461e4141361d2910d0d997a2174989df606.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d2e4-硬-可用-module-stage-knowledge-chromium/attachments/probe-D01-bcca5204eae3c340bcf2e5d455dde9e35cc10053.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8fa15-复-module-knowledge-feedback-chromium/attachments/probe-E01-768d744b990df78d05147237c0636c4ee771c1ed.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9d5c3-新成功-module-process-designer-chromium/attachments/probe-U01-b82cb3f43ec5fd03fbcf5e9a47076d4b327698f7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a99bb-m-即时通讯-C02-创建校验失败-module-im-chromium/attachments/probe-C02-fd074e16ad7f94b54706d083613b4b5d32b93e4b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4daf--权限矩阵-module-admin-settings-chromium/attachments/probe-P01-d0080ae80a82c103bcd848bca31d749b3dcc8352.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b8549-成功-module-resource-requests-chromium/attachments/probe-U01-ca13f11ed3d09b5def3fe7e441ad40110d2b0379.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4557--用户管理-U01-更新成功-module-users-chromium/attachments/probe-U01-712df3b828fbaea6fc759167308e86fa7855176f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c39-恢复-module-resource-requests-chromium/attachments/probe-E01-e9b591e744c63185541a625ceba5e5d973b6746b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c7867--角色管理-C01-创建成功-module-roles-chromium/attachments/probe-C01-7a7d119a902c3f458539ddaa114898e0a33f4d8f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc828--即时通讯-U02-更新权限-冲突-module-im-chromium/attachments/probe-U02-76760ce7a07288e361d11e3be6c77b61b817ee40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce2ac--详情可读-module-admin-settings-chromium/attachments/probe-R03-cea057b72b957fdb65cc5e3b674bfa2f05636e5e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d14d4--用户管理-E01-异常恢复-module-users-chromium/attachments/probe-E01-6169c2a0eaab0a87b4892d56e1c64902f64e0217.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3762-限-冲突-module-stage-knowledge-chromium/attachments/probe-U02-9e395cc67c38073bfd6eb6ad38fe5ac43a337d56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d6fb4-常恢复-module-process-designer-chromium/attachments/probe-E01-b1f8e178d5a774eddb298c119317b36e0414d60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de878--角色管理-E01-异常恢复-module-roles-chromium/attachments/probe-E01-bb017dd97b92cb05f37191c933e038af13a8c04a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e43a6-限矩阵-module-process-designer-chromium/attachments/probe-P01-e9df19eeca43b46dca36a135566329b6da44cacd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e4560-管理-U02-更新权限-冲突-module-users-chromium/attachments/probe-U02-a105db3f1ef20b6b8ba0ed401d244b376932736b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ea129-阵-module-knowledge-feedback-chromium/attachments/probe-P01-c3160dc84a9d7fea219587cb594dd8add36d515d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec3b8-验失败-module-process-designer-chromium/attachments/probe-C02-dae6185bd96e2e2c88c4bb9104517a939b2afb15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed28f-权限矩阵-module-stage-knowledge-chromium/attachments/probe-P01-703da6de6b8031b653cf5cb16f3656f251917838.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee943-成功-module-resource-requests-chromium/attachments/probe-C01-96dc059a7597ae051b9d321db1cb4b470806e6f4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eee91-用-module-knowledge-feedback-chromium/attachments/probe-D01-43d0c2e97c66fbd3301826ea68d66fce62cb7eb0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f3c4d-询筛选分页-module-admin-settings-chromium/attachments/probe-R02-55334ddef6735b6dddfc2d2e6143a089efb9be24.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f690b--D01-删除-软-硬-可用-module-users-chromium/attachments/probe-D01-6438fdd0fae658cd354e2761efa5b0065ab74607.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fabfb-建成功-module-process-designer-chromium/attachments/probe-C01-65e7119661d41d890e1f8d734662a8ce3b15268c.json","e2e/test-results/crud/probes/admin-settings-C01-1774228943803.json","e2e/test-results/crud/probes/admin-settings-C02-1774228945689.json","e2e/test-results/crud/probes/admin-settings-E01-1774228954200.json","e2e/test-results/crud/probes/admin-settings-P01-1774228952357.json","e2e/test-results/crud/probes/admin-settings-R01-1774228946846.json","e2e/test-results/crud/probes/admin-settings-R02-1774228948718.json","e2e/test-results/crud/probes/admin-settings-R03-1774228950565.json","e2e/test-results/crud/probes/admin-settings-U01-1774228956047.json","e2e/test-results/crud/probes/im-C02-1774228926548.json","e2e/test-results/crud/probes/im-E01-1774228936351.json","e2e/test-results/crud/probes/im-P01-1774228934107.json","e2e/test-results/crud/probes/im-U02-1774228939732.json","e2e/test-results/crud/probes/knowledge-feedback-D01-1774228819428.json","e2e/test-results/crud/probes/knowledge-feedback-D02-1774228821536.json","e2e/test-results/crud/probes/knowledge-feedback-E01-1774228817921.json","e2e/test-results/crud/probes/knowledge-feedback-P01-1774228815781.json","e2e/test-results/crud/probes/process-designer-C01-1774228822742.json","e2e/test-results/crud/probes/process-designer-C02-1774228824586.json","e2e/test-results/crud/probes/process-designer-D01-1774228839637.json","e2e/test-results/crud/probes/process-designer-D02-1774228841175.json","e2e/test-results/crud/probes/process-designer-E01-1774228834388.json","e2e/test-results/crud/probes/process-designer-P01-1774228832112.json","e2e/test-results/crud/probes/process-designer-U01-1774228835867.json","e2e/test-results/crud/probes/process-designer-U02-1774228837789.json","e2e/test-results/crud/probes/resource-requests-C01-1774228842926.json","e2e/test-results/crud/probes/resource-requests-C02-1774228844702.json","e2e/test-results/crud/probes/resource-requests-D01-1774228859373.json","e2e/test-results/crud/probes/resource-requests-D02-1774228861489.json","e2e/test-results/crud/probes/resource-requests-E01-1774228854515.json","e2e/test-results/crud/probes/resource-requests-P01-1774228852276.json","e2e/test-results/crud/probes/resource-requests-U01-1774228855843.json","e2e/test-results/crud/probes/resource-requests-U02-1774228857762.json","e2e/test-results/crud/probes/roles-C01-1774228862700.json","e2e/test-results/crud/probes/roles-C02-1774228864549.json","e2e/test-results/crud/probes/roles-D01-1774228879608.json","e2e/test-results/crud/probes/roles-D02-1774228881181.json","e2e/test-results/crud/probes/roles-E01-1774228874266.json","e2e/test-results/crud/probes/roles-P01-1774228872022.json","e2e/test-results/crud/probes/roles-U01-1774228875744.json","e2e/test-results/crud/probes/roles-U02-1774228877671.json","e2e/test-results/crud/probes/stage-knowledge-C01-1774228882938.json","e2e/test-results/crud/probes/stage-knowledge-C02-1774228884716.json","e2e/test-results/crud/probes/stage-knowledge-D01-1774228900165.json","e2e/test-results/crud/probes/stage-knowledge-D02-1774228901711.json","e2e/test-results/crud/probes/stage-knowledge-E01-1774228894714.json","e2e/test-results/crud/probes/stage-knowledge-P01-1774228892441.json","e2e/test-results/crud/probes/stage-knowledge-U01-1774228896206.json","e2e/test-results/crud/probes/stage-knowledge-U02-1774228898148.json","e2e/test-results/crud/probes/users-C01-1774228903774.json","e2e/test-results/crud/probes/users-C02-1774228905307.json","e2e/test-results/crud/probes/users-D01-1774228921548.json","e2e/test-results/crud/probes/users-D02-1774228923127.json","e2e/test-results/crud/probes/users-E01-1774228915372.json","e2e/test-results/crud/probes/users-P01-1774228913142.json","e2e/test-results/crud/probes/users-U01-1774228917209.json","e2e/test-results/crud/probes/users-U02-1774228919166.json","e2e/tests/quarantine/.gitkeep","frontend/src/composables/__tests__/useApiQuery.test.ts","frontend/src/router/modules/acquisition.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/router/modules/compat-redirects.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/dashboard.ts","frontend/src/router/modules/finance.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/marketing.ts","frontend/src/router/modules/sales.ts","frontend/src/router/modules/service.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/router/modules/system.ts","frontend/src/stores/__tests__/app.store.test.ts","frontend/src/stores/__tests__/im.store.test.ts","frontend/src/stores/__tests__/knowledge.store.test.ts","frontend/src/styles/_containers.scss","frontend/src/styles/layers.css","frontend/src/utils/echarts.ts"],"removed":["e2e/test-results/results.json"],"modified":[".github/workflows/ci.yml","backend/.env.example","backend/package.json","backend/scripts/audit-prisma-zod-contract.ts","backend/scripts/generate-rls-policies.ts","backend/src/config/env.ts","backend/src/config/kafka.ts","backend/src/consumers/__tests__/sales.consumer.test.ts","backend/src/main.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.test.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/campaigns/campaign.service.enhanced.test.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.test.ts","backend/src/modules/channels/channel.schema.test.ts","backend/src/modules/community-gamification/community-gamification.service.test.ts","backend/src/modules/community-materials/community-material.service.test.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/content-analytics/content-analytics.service.test.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customer-analytics/customer-analytics.service.test.ts","backend/src/modules/customer-balance/customer-balance.service.test.ts","backend/src/modules/financial-reports/financial-reports.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.test.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.test.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.test.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.test.ts","backend/src/modules/im/websocket/gateway.ts","backend/src/modules/im/websocket/health.ts","backend/src/modules/im/websocket/redis-adapter.ts","backend/src/modules/integration-services/integration-service.service.test.ts","backend/src/modules/lead-qualification/qualification.service.test.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.test.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.test.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/livestream/livestream.service.test.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.test.ts","backend/src/modules/marketing-content/marketing-content.service.test.ts","backend/src/modules/marketing-forms/marketing-form.service.test.ts","backend/src/modules/marketing-north-star/marketing-north-star.service.test.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.test.ts","backend/src/modules/marketing/marketing.service.test.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-statement.service.ts","backend/src/modules/pm/pm.service.test.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/quotes/quote-decompose.service.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/rma/rma.service.test.ts","backend/src/modules/sample-requests/sample-request.service.test.ts","backend/src/modules/serial-numbers/sn.service.test.ts","backend/src/modules/sms-marketing/sms-marketing.service.test.ts","backend/src/modules/social-interactions/social-interactions.service.test.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/services/__tests__/outbox-processor.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/src/shared/state-machines/__tests__/ai-task.machine.test.ts","backend/src/shared/state-machines/__tests__/contract.machine.test.ts","backend/src/shared/utils/biz-code.test.ts","backend/src/shared/utils/crud.ts","backend/tests/unit/process-core/workflow-e2e.test.ts","backend/tests/unit/services/lead.service.test.ts","backend/tests/unit/services/quote.service.test.ts","deploy/grafana/provisioning/datasources/datasources.yml","docker-compose.prod.yml","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/playwright.config.ts","e2e/test-results/.last-run.json","frontend/package.json","frontend/src/components/common/DataTable.vue","frontend/src/components/responsive/ResponsiveChart.vue","frontend/src/main.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/supplemental.ts","frontend/src/stores/auth.ts","frontend/src/styles/index.scss","frontend/src/views/ai-agents/autopilot/AITestCases.vue","frontend/src/views/ai-agents/components/AgentModelManager.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/campaigns/analytics/index.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/FunnelChart.vue","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/inventory/Analytics.vue","frontend/src/views/knowledge/components/KnowledgeGraph.vue","frontend/src/views/service-dashboard/components/SLAPanel.vue","frontend/src/views/service-dashboard/components/SatisfactionPanel.vue","frontend/src/views/service-dashboard/components/TicketStatsPanel.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/vite.config.ts","pnpm-lock.yaml"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1919936,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:52:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
20
|
1774229207
|
1774229412
|
0
|
1774229063
|
1774229570
|
|
|
0
|
Edit
Delete
|
|
7293
|
chore: comprehensive governance updates and test a chore: comprehensive governance updates and test artifacts...
|
6
|
5
|
integration-test.yml
|
7219
|
5
|
0
|
refs/heads/main
|
339ea969ec2633756fb1a155d47723d0f61396a4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","after":"339ea969ec2633756fb1a155d47723d0f61396a4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/df7b6f46170cb46db4771dd1e07991b0b13d90a0...339ea969ec2633756fb1a155d47723d0f61396a4","commits":[{"id":"339ea969ec2633756fb1a155d47723d0f61396a4","message":"chore: comprehensive governance updates and test artifacts\n\n- Add Prisma schema modularization and migration scripts\n- Add service test coverage across all modules (AI, alliance, community, marketing, etc.)\n- Add shared services (cache, custom-fields, dynamic-state-machine, encryption, etc.)\n- Add infrastructure configs (ClickHouse, Debezium, Tempo)\n- Add user manual and technical documentation with screenshots\n- Add router module organization for all centers\n- Add store/test coverage and Playwright artifacts\n- Update CI workflow, environment configs, and dependencies\n- Fix security issues in auth, kafka, and validation layers\n- Fix permission naming tests to expect kebab-case output\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/339ea969ec2633756fb1a155d47723d0f61396a4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T09:22:37+08:00","added":["backend/prisma/migrations/manual/create_dynamic_sm_and_custom_fields.sql","backend/prisma/migrations/manual/create_knowledge_embeddings.sql","backend/prisma/migrations/materialized_views.sql","backend/prisma/schema/_base.prisma","backend/prisma/schema/_enums.prisma","backend/prisma/schema/ai.prisma","backend/prisma/schema/alliance.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/customers.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/geo.prisma","backend/prisma/schema/hr.prisma","backend/prisma/schema/im.prisma","backend/prisma/schema/knowledge.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/livestream.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/products.prisma","backend/prisma/schema/project.prisma","backend/prisma/schema/renewals.prisma","backend/prisma/schema/sales.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/social.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/config/__tests__/kafka-router.test.ts","backend/src/config/tracing.ts","backend/src/modules/ai-copilot/ai-copilot.service.test.ts","backend/src/modules/alliance-analytics/alliance-analytics.service.test.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.test.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-products/alliance-product.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.test.ts","backend/src/modules/alliance-referrals/alliance-referral.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/approval-templates/approval-template.service.test.ts","backend/src/modules/campaign-targets/campaign-target.service.test.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.test.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.test.ts","backend/src/modules/community-activities/community-activity.service.test.ts","backend/src/modules/community-analytics/community-analytics.service.test.ts","backend/src/modules/community-fission/community-fission.service.test.ts","backend/src/modules/community-groups/community-group.service.test.ts","backend/src/modules/community-members/community-member.service.test.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.test.ts","backend/src/modules/content-categories/content-category.service.test.ts","backend/src/modules/content-copyright/content-copyright.service.test.ts","backend/src/modules/content-creation/content-creation.service.test.ts","backend/src/modules/content-distribution/content-distribution.service.test.ts","backend/src/modules/content-library/content-library.service.test.ts","backend/src/modules/content-review/content-review.service.test.ts","backend/src/modules/content-templates/content-template.service.test.ts","backend/src/modules/contract-templates/contract-template.service.test.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.test.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.test.ts","backend/src/modules/customer-journey/customer-journey.service.test.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.test.ts","backend/src/modules/customer-ltv/customer-ltv.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.test.ts","backend/src/modules/dimension-transform/dimension-transform.service.test.ts","backend/src/modules/disbursements/disbursement-record.service.test.ts","backend/src/modules/events/event.service.test.ts","backend/src/modules/finance/finance-credits.service.test.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-refunds.service.test.ts","backend/src/modules/finance/finance.service.test.ts","backend/src/modules/geo-analytics/geo-analytics.service.test.ts","backend/src/modules/geo-fences/geo-fences.service.test.ts","backend/src/modules/geo-keywords/geo-keyword.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.test.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.test.ts","backend/src/modules/hr/positions/positions.service.test.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.test.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.test.ts","backend/src/modules/livestream-products/livestream-product.service.test.ts","backend/src/modules/livestream-rooms/livestream-room.service.test.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.test.ts","backend/src/modules/livestream-scripts/livestream-script.service.test.ts","backend/src/modules/marketing-calendar/marketing-calendar.service.test.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.test.ts","backend/src/modules/marketing-matrix/matrix.service.test.ts","backend/src/modules/mdm/mdm.service.test.ts","backend/src/modules/menus/menu.service.test.ts","backend/src/modules/multi-touch-attribution/multi-touch-attribution.service.test.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.test.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.test.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.test.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.test.ts","backend/src/modules/reports/report.service.test.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.test.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.test.ts","backend/src/modules/self-operated-store/self-operated-store.service.test.ts","backend/src/modules/social-accounts/social-account.service.test.ts","backend/src/modules/social-auto-replies/social-auto-reply.service.test.ts","backend/src/modules/social-posts/social-post.service.test.ts","backend/src/modules/store-agency/store-agency.service.test.ts","backend/src/modules/suppliers/supplier.service.test.ts","backend/src/modules/video-calls/video-call.service.test.ts","backend/src/shared/middleware/__tests__/security-fixes.test.ts","backend/src/shared/middleware/field-encryption.middleware.ts","backend/src/shared/middleware/rate-limit.middleware.ts","backend/src/shared/services/__tests__/audit-log.service.test.ts","backend/src/shared/services/__tests__/custom-fields.service.test.ts","backend/src/shared/services/__tests__/dynamic-state-machine.service.test.ts","backend/src/shared/services/__tests__/list-cache.service.test.ts","backend/src/shared/services/__tests__/llm-gateway.service.test.ts","backend/src/shared/services/__tests__/prompt-registry.service.test.ts","backend/src/shared/services/abac-policy.service.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/services/custom-fields.service.ts","backend/src/shared/services/dynamic-state-machine.service.ts","backend/src/shared/services/field-encryption.service.ts","backend/src/shared/services/immutable-audit.service.ts","backend/src/shared/services/llm-gateway.service.ts","backend/src/shared/services/materialized-view.service.ts","backend/src/shared/services/prompt-registry.service.ts","backend/src/shared/services/rag-pipeline.service.ts","backend/src/shared/utils/__tests__/permission-normalizer.test.ts","backend/src/shared/utils/__tests__/validation-security.test.ts","backend/src/shared/utils/permission-normalizer.ts","deploy/clickhouse/config.xml","deploy/clickhouse/init.sql","deploy/debezium/register-connector.json","deploy/tempo/config.yaml","docker-compose.analytics.yml","docs/test-plan/TEST-PLAN.md","docs/user-manual/convert-tech-manual.mjs","docs/user-manual/convert-to-html.mjs","docs/user-manual/screenshots/01-login-2026-03-23T00-12-58-197Z.png","docs/user-manual/screenshots/02-dashboard-2026-03-23T00-13-11-223Z.png","docs/user-manual/screenshots/03-ai-agents-2026-03-23T00-13-44-706Z.png","docs/user-manual/screenshots/04-leads-2026-03-23T00-13-49-733Z.png","docs/user-manual/screenshots/05-lead-qualification-2026-03-23T00-13-55-424Z.png","docs/user-manual/screenshots/06-content-library-2026-03-23T00-14-01-180Z.png","docs/user-manual/screenshots/07-campaigns-2026-03-23T00-14-06-696Z.png","docs/user-manual/screenshots/08-opportunities-2026-03-23T00-14-12-799Z.png","docs/user-manual/screenshots/09-quotes-2026-03-23T00-14-20-564Z.png","docs/user-manual/screenshots/10-contracts-2026-03-23T00-14-26-796Z.png","docs/user-manual/screenshots/11-orders-2026-03-23T00-14-32-331Z.png","docs/user-manual/screenshots/12-stores-2026-03-23T00-14-37-745Z.png","docs/user-manual/screenshots/13-tickets-2026-03-23T00-14-43-846Z.png","docs/user-manual/screenshots/14-sla-2026-03-23T00-14-49-340Z.png","docs/user-manual/screenshots/15-ar-ledger-2026-03-23T00-14-54-842Z.png","docs/user-manual/screenshots/16-payments-2026-03-23T00-14-59-958Z.png","docs/user-manual/screenshots/17-purchase-orders-2026-03-23T00-15-06-034Z.png","docs/user-manual/screenshots/19-products-2026-03-23T00-15-17-479Z.png","docs/user-manual/screenshots/20-knowledge-2026-03-23T00-15-24-044Z.png","docs/user-manual/screenshots/21-approvals-2026-03-23T00-15-30-115Z.png","docs/user-manual/screenshots/22-hr-attendance-2026-03-23T00-15-36-643Z.png","docs/user-manual/screenshots/23-tenant-configs-2026-03-23T00-15-42-739Z.png","docs/user-manual/screenshots/25-roles-2026-03-23T00-15-56-801Z.png","docs/user-manual/screenshots/26-customers-2026-03-23T00-16-02-467Z.png","docs/user-manual/screenshots/27-im-2026-03-23T00-16-07-704Z.png","docs/user-manual/screenshots/tech-01-api-docs-2026-03-23T00-30-33-332Z.png","docs/user-manual/screenshots/tech-02-system-monitor-2026-03-23T00-30-42-759Z.png","docs/user-manual/screenshots/tech-03-event-logs-fix-2026-03-23T01-07-06-085Z.png","docs/user-manual/screenshots/tech-04-scheduled-jobs-2026-03-23T00-31-01-868Z.png","docs/user-manual/screenshots/tech-05-process-designer-2026-03-23T00-31-11-126Z.png","docs/user-manual/screenshots/tech-06-operation-logs-2026-03-23T00-31-20-335Z.png","docs/user-manual/screenshots/tech-07-settings-fix-2026-03-23T01-04-46-329Z.png","docs/user-manual/screenshots/tech-08-notification-configs-2026-03-23T00-31-38-845Z.png","docs/user-manual/technical-manual-content.md","docs/user-manual/technical-manual.html","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","docs/user-manual/巨嗨全域智库-技术开发手册-v1.0.pdf","docs/user-manual/巨嗨全域智库-用户使用手册-v1.0.pdf","e2e/QUARANTINE.md","e2e/playwright-report/data/0841239e09a180630fc75a988c85edb7d05739ad.md","e2e/playwright-report/data/db1fc0403d7c6af356a063a72ff6b4161a90d53a.png","e2e/test-results/.playwright-artifacts-240/040dee8f334f6c93fa788311a8961dae.png","e2e/test-results/.playwright-artifacts-240/058f808b72bfb61b392c5078d5509418.png","e2e/test-results/.playwright-artifacts-240/0893f4c2a4a7c014d48a306a37a5dc6f.png","e2e/test-results/.playwright-artifacts-240/1bd44c2c27b13a8e4e20754676e16753.png","e2e/test-results/.playwright-artifacts-240/202267e939ad0f07474e283188a20e7d.png","e2e/test-results/.playwright-artifacts-240/2643239379fd7e6fb2b3af6dacebc4fa.png","e2e/test-results/.playwright-artifacts-240/275d5fde4f54663504fbe6b3e84548d3.png","e2e/test-results/.playwright-artifacts-240/42867d3c5c17db159677472c69e89621.png","e2e/test-results/.playwright-artifacts-240/437c27fb2bacac72655c93b0b195c12b.png","e2e/test-results/.playwright-artifacts-240/4e1e7cc1649f584e86226ca11178f09d.png","e2e/test-results/.playwright-artifacts-240/505ec08f78c1ac4cfbd5a64a3e01ec29.png","e2e/test-results/.playwright-artifacts-240/50ad9cd6f3585ecf685f91c233f1100f.png","e2e/test-results/.playwright-artifacts-240/56d48ae872fca36631d1f464243747be.png","e2e/test-results/.playwright-artifacts-240/5be73b706dafcc86885ef501dccd65f9.png","e2e/test-results/.playwright-artifacts-240/61a48f54c74157d08f79a5c7638a2c75.png","e2e/test-results/.playwright-artifacts-240/67cbfdd34817fa76173eda99da253422.png","e2e/test-results/.playwright-artifacts-240/6de31eb46d49679d37fcb85e09bf50a7.png","e2e/test-results/.playwright-artifacts-240/719cc5c2833983e26d2e26fb6ecd1410.png","e2e/test-results/.playwright-artifacts-240/765d23b2babbdc342a5e33cda8d39a87.png","e2e/test-results/.playwright-artifacts-240/7f1c5b28525ac2cc41bc099e6f749ab3.png","e2e/test-results/.playwright-artifacts-240/800d3474ffbcfb84327a4cff203da5ab.png","e2e/test-results/.playwright-artifacts-240/82e93cc1f0a93cda9a36e89ffa14b831.png","e2e/test-results/.playwright-artifacts-240/834a6d7b46250bf3a7b6c74804572593.png","e2e/test-results/.playwright-artifacts-240/86a3a201ece1b35521f5b7cb565876c1.png","e2e/test-results/.playwright-artifacts-240/8ab300257837e88962f2a6b7027e13a0.png","e2e/test-results/.playwright-artifacts-240/941e36d46c2caceb2ea0fc70bed6bba5.png","e2e/test-results/.playwright-artifacts-240/9e77802004f48f7c693bc508c5d8d39b.png","e2e/test-results/.playwright-artifacts-240/a0e310742c0a3c96a02bdf2c7db7dfb2.png","e2e/test-results/.playwright-artifacts-240/c4f6a23e9cd556d8fa7d69f40bc122ac.png","e2e/test-results/.playwright-artifacts-240/c51c980a067ead90c72ee084ad8fc00a.png","e2e/test-results/.playwright-artifacts-240/d74a4495418c027fb3e4b838b4aa3521.png","e2e/test-results/.playwright-artifacts-240/dace6040beafd8d86a5baf4fe5f1ae2a.png","e2e/test-results/.playwright-artifacts-240/dce6caafe2e1fcdac2ee738369ed6098.png","e2e/test-results/.playwright-artifacts-240/df5df0fd3c83d8265e719acb6b3d0ee6.png","e2e/test-results/.playwright-artifacts-240/e07d7068d011403eeb553914cb5c364e.png","e2e/test-results/.playwright-artifacts-240/e5e82b734579c829a5939d96fcc05dff.png","e2e/test-results/.playwright-artifacts-240/e8cb101c527d05e5df6ca5fc2b904583.png","e2e/test-results/.playwright-artifacts-240/eaff6d849895b87797832af1a9a24d65.png","e2e/test-results/.playwright-artifacts-240/f0ff9429d9c71385cff328a94e1a703c.png","e2e/test-results/.playwright-artifacts-240/fba7d655d78e525212c958c6c2a7227d.png","e2e/test-results/.playwright-artifacts-241/094966347a6999bd858f5ab8a249f754.png","e2e/test-results/.playwright-artifacts-241/0b6068733b160e988728b3140bdbaef5.png","e2e/test-results/.playwright-artifacts-241/1bb8fb49ed8335c1df210ed0bbe9493c.png","e2e/test-results/.playwright-artifacts-241/1dc0352fb049eb5707b5ecdeb36e7588.png","e2e/test-results/.playwright-artifacts-241/248c7bde5073b7b22bc5737b59012f68.png","e2e/test-results/.playwright-artifacts-241/26e9b207b71a36018b2252efb70c0366.png","e2e/test-results/.playwright-artifacts-241/2ae009986a6d6b9b348e715140f0e05f.png","e2e/test-results/.playwright-artifacts-241/2e7643de8fce869a4dc6701b06f92045.png","e2e/test-results/.playwright-artifacts-241/34681405d2abf88b9b47e450f48ecaa3.png","e2e/test-results/.playwright-artifacts-241/45be60ad912dd46dfb7aa5cbee9f02d0.png","e2e/test-results/.playwright-artifacts-241/5bb07c90a274dac44963d8cceca8eb1e.png","e2e/test-results/.playwright-artifacts-241/5c81aa46578a6e4a399dcdf0d73ba8d3.png","e2e/test-results/.playwright-artifacts-241/643d257ac5cf926a92dfd4e67907a9dc.png","e2e/test-results/.playwright-artifacts-241/6454481b50c1adc6bc7e94d3fb946915.png","e2e/test-results/.playwright-artifacts-241/67232c5e7156aba881fa65d80af1207b.png","e2e/test-results/.playwright-artifacts-241/67d9026a171dc55ffc861a72ce9d4b2c.png","e2e/test-results/.playwright-artifacts-241/714aeb4c6b5950f311af88662c8b4424.png","e2e/test-results/.playwright-artifacts-241/7a8af77cb2620429282f057b7c7fd0ae.png","e2e/test-results/.playwright-artifacts-241/922282efa032ca16073c502056c2826f.png","e2e/test-results/.playwright-artifacts-241/9543fc36ad8580206d7a961590a7d83d.png","e2e/test-results/.playwright-artifacts-241/9c77f778e3b32c88fe3524c93a150de1.png","e2e/test-results/.playwright-artifacts-241/9c8a27ce50fdd70f043debd37db84261.png","e2e/test-results/.playwright-artifacts-241/9ce478697576abf803f23864fd3d01c7.png","e2e/test-results/.playwright-artifacts-241/a9df789309206957d3696bd33d4752b7.png","e2e/test-results/.playwright-artifacts-241/b16f350537ed50e46405ecd91275e9f4.png","e2e/test-results/.playwright-artifacts-241/b213a106fbdfe86fe5a2e40fd333aa0c.png","e2e/test-results/.playwright-artifacts-241/b82911d04e9ad9e3893351a21a56b011.png","e2e/test-results/.playwright-artifacts-241/b94da2213274548a93d16676dea24087.png","e2e/test-results/.playwright-artifacts-241/b98a93160e626ed6e3b05e7e527192fa.png","e2e/test-results/.playwright-artifacts-241/c2f7e527724d7e5eb8d379e3fbfc1b83.png","e2e/test-results/.playwright-artifacts-241/c800d08cc104e95000629104c11fd8b3.png","e2e/test-results/.playwright-artifacts-241/cd36bb67c1c05fedeac1923b06e6d4f5.png","e2e/test-results/.playwright-artifacts-241/d2ebbb7e8ca084380958c49f40f1bcac.png","e2e/test-results/.playwright-artifacts-241/d6ef796cc1833026cab7434b435084f4.png","e2e/test-results/.playwright-artifacts-241/dc49bd3538e061f12e7b17709d6bba0d.png","e2e/test-results/.playwright-artifacts-241/e014d348f300176842a83787a7f7938c.png","e2e/test-results/.playwright-artifacts-241/e8b738bc9925b35cacb65db8fd37bd27.png","e2e/test-results/.playwright-artifacts-241/ed833f2d058e02081a433bb71c5c71ca.png","e2e/test-results/.playwright-artifacts-241/f42b7455348166022fb51732079f16a2.png","e2e/test-results/.playwright-artifacts-241/f7ffcca2f8bd695dbd421e83dfd7dacb.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b88a-矩阵-module-resource-requests-chromium/attachments/probe-P01-828a9fe4a1cc10ad814b8901ea3f331dabb4f466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1445f--创建成功-module-admin-settings-chromium/attachments/probe-C01-b70ed60761f6c844c0724c90be9bd3a2e28f887e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-159b4-失败-module-resource-requests-chromium/attachments/probe-C02-579660baa87709a7140145510b380b58f4afc555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1a1ae--用户管理-P01-权限矩阵-module-users-chromium/attachments/probe-P01-21d61422e262180992f04fed0d6e1f58f4f8928a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ad44--异常恢复-module-admin-settings-chromium/attachments/probe-E01-167118b9260fa76b0a2a1f0fa96675e800dc6f74.json","e2e/test-results/crud-00-crud-runner-CRUD-严-20309-异常恢复-module-stage-knowledge-chromium/attachments/probe-E01-65c2d06fb134d7cb9f3931a7131cf0260ea97061.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22f29-理-D02-恢复或不可见校验-module-roles-chromium/attachments/probe-D02-d26e2d296f3e8407ccfd9c2cc2f24cf6829a8508.json","e2e/test-results/crud-00-crud-runner-CRUD-严-239e9-验-module-knowledge-feedback-chromium/attachments/probe-D02-e58bb6a96915688b8f2287bbb25bab2388293c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ba01-更新成功-module-stage-knowledge-chromium/attachments/probe-U01-208017e0ddf654dcec7c7e6ed78e75cdbcaeefe5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c5eb-建校验失败-module-admin-settings-chromium/attachments/probe-C02-c917accda05528170401af83fb11a330a3cbda4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34d7b-可见校验-module-stage-knowledge-chromium/attachments/probe-D02-821275ce5a1a2d3c0299a4438bc0551a6d53176c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34f0e--更新成功-module-admin-settings-chromium/attachments/probe-U01-f4a4e93fb88c2ef19abde8f7dd664879de695c9f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-365ba--用户管理-C01-创建成功-module-users-chromium/attachments/probe-C01-900190bda813dce7a5e62caaa492f5a3677f3e23.json","e2e/test-results/crud-00-crud-runner-CRUD-严-392a1--im-即时通讯-E01-异常恢复-module-im-chromium/attachments/probe-E01-fa3a07d4be5ae62afd985ab459bbd15a33a2fdef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a38c--D01-删除-软-硬-可用-module-roles-chromium/attachments/probe-D01-ae5282c3a94d95edce6b6b614e0f1c7bb0cacec0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4220e--角色管理-P01-权限矩阵-module-roles-chromium/attachments/probe-P01-bf40ed0eb839caf8e2dc359b3fbf41adc61a8186.json","e2e/test-results/crud-00-crud-runner-CRUD-严-43344-校验失败-module-stage-knowledge-chromium/attachments/probe-C02-c40333d9c899532c29747a98c3608a229f081c35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-460f0-户管理-C02-创建校验失败-module-users-chromium/attachments/probe-C02-793ed6868532d6f08fa3b7e01ef91cee883edc62.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b07d--可用-module-process-designer-chromium/attachments/probe-D01-acbfe0f811bb517717a6b841a585892cbebff24c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4f5-可用-module-resource-requests-chromium/attachments/probe-D01-2e8e53337f638a07ab7cc317baa3d97366c245e0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7f3--im-即时通讯-P01-权限矩阵-module-im-chromium/attachments/probe-P01-b22bb94be6b4cf1a140ec1c9f11b2ce4b3ea633f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52d8f-校验-module-resource-requests-chromium/attachments/probe-D02-dbcf98c1134a088b83217a812d0c0a8650ac69a3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-538f0-色管理-C02-创建校验失败-module-roles-chromium/attachments/probe-C02-2f4ee0aa5a1a7bf30860781b2ab8e052c752a87c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-60bbd-管理-U02-更新权限-冲突-module-roles-chromium/attachments/probe-U02-0531249436aff73c81d0fc89355c4cbc7167ec8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bff7-理-D02-恢复或不可见校验-module-users-chromium/attachments/probe-D02-cfa483afa2a0dcba0b625f169d4ddfd4df7815e9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6d194-见校验-module-process-designer-chromium/attachments/probe-D02-ace63a12d5911b8f54a54b89d94362c9b7276535.json","e2e/test-results/crud-00-crud-runner-CRUD-严-72cf4--角色管理-U01-更新成功-module-roles-chromium/attachments/probe-U01-daf71b632d68b74b441594222818913f9937bd60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-77ec5-创建成功-module-stage-knowledge-chromium/attachments/probe-C01-073ec52dcaf122cc92ed77c881d6407f63e053ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f7f1--列表可读-module-admin-settings-chromium/attachments/probe-R01-1b19c02416b08eebec04e254505821f27bda570e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89494--冲突-module-process-designer-chromium/attachments/probe-U02-57053c2bcdfde404efd732026ff7bbb7c2a742c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89599-冲突-module-resource-requests-chromium/attachments/probe-U02-3bbd6461e4141361d2910d0d997a2174989df606.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d2e4-硬-可用-module-stage-knowledge-chromium/attachments/probe-D01-bcca5204eae3c340bcf2e5d455dde9e35cc10053.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8fa15-复-module-knowledge-feedback-chromium/attachments/probe-E01-768d744b990df78d05147237c0636c4ee771c1ed.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9d5c3-新成功-module-process-designer-chromium/attachments/probe-U01-b82cb3f43ec5fd03fbcf5e9a47076d4b327698f7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a99bb-m-即时通讯-C02-创建校验失败-module-im-chromium/attachments/probe-C02-fd074e16ad7f94b54706d083613b4b5d32b93e4b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4daf--权限矩阵-module-admin-settings-chromium/attachments/probe-P01-d0080ae80a82c103bcd848bca31d749b3dcc8352.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b8549-成功-module-resource-requests-chromium/attachments/probe-U01-ca13f11ed3d09b5def3fe7e441ad40110d2b0379.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4557--用户管理-U01-更新成功-module-users-chromium/attachments/probe-U01-712df3b828fbaea6fc759167308e86fa7855176f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c39-恢复-module-resource-requests-chromium/attachments/probe-E01-e9b591e744c63185541a625ceba5e5d973b6746b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c7867--角色管理-C01-创建成功-module-roles-chromium/attachments/probe-C01-7a7d119a902c3f458539ddaa114898e0a33f4d8f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc828--即时通讯-U02-更新权限-冲突-module-im-chromium/attachments/probe-U02-76760ce7a07288e361d11e3be6c77b61b817ee40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce2ac--详情可读-module-admin-settings-chromium/attachments/probe-R03-cea057b72b957fdb65cc5e3b674bfa2f05636e5e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d14d4--用户管理-E01-异常恢复-module-users-chromium/attachments/probe-E01-6169c2a0eaab0a87b4892d56e1c64902f64e0217.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3762-限-冲突-module-stage-knowledge-chromium/attachments/probe-U02-9e395cc67c38073bfd6eb6ad38fe5ac43a337d56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d6fb4-常恢复-module-process-designer-chromium/attachments/probe-E01-b1f8e178d5a774eddb298c119317b36e0414d60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de878--角色管理-E01-异常恢复-module-roles-chromium/attachments/probe-E01-bb017dd97b92cb05f37191c933e038af13a8c04a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e43a6-限矩阵-module-process-designer-chromium/attachments/probe-P01-e9df19eeca43b46dca36a135566329b6da44cacd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e4560-管理-U02-更新权限-冲突-module-users-chromium/attachments/probe-U02-a105db3f1ef20b6b8ba0ed401d244b376932736b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ea129-阵-module-knowledge-feedback-chromium/attachments/probe-P01-c3160dc84a9d7fea219587cb594dd8add36d515d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec3b8-验失败-module-process-designer-chromium/attachments/probe-C02-dae6185bd96e2e2c88c4bb9104517a939b2afb15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed28f-权限矩阵-module-stage-knowledge-chromium/attachments/probe-P01-703da6de6b8031b653cf5cb16f3656f251917838.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee943-成功-module-resource-requests-chromium/attachments/probe-C01-96dc059a7597ae051b9d321db1cb4b470806e6f4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eee91-用-module-knowledge-feedback-chromium/attachments/probe-D01-43d0c2e97c66fbd3301826ea68d66fce62cb7eb0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f3c4d-询筛选分页-module-admin-settings-chromium/attachments/probe-R02-55334ddef6735b6dddfc2d2e6143a089efb9be24.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f690b--D01-删除-软-硬-可用-module-users-chromium/attachments/probe-D01-6438fdd0fae658cd354e2761efa5b0065ab74607.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fabfb-建成功-module-process-designer-chromium/attachments/probe-C01-65e7119661d41d890e1f8d734662a8ce3b15268c.json","e2e/test-results/crud/probes/admin-settings-C01-1774228943803.json","e2e/test-results/crud/probes/admin-settings-C02-1774228945689.json","e2e/test-results/crud/probes/admin-settings-E01-1774228954200.json","e2e/test-results/crud/probes/admin-settings-P01-1774228952357.json","e2e/test-results/crud/probes/admin-settings-R01-1774228946846.json","e2e/test-results/crud/probes/admin-settings-R02-1774228948718.json","e2e/test-results/crud/probes/admin-settings-R03-1774228950565.json","e2e/test-results/crud/probes/admin-settings-U01-1774228956047.json","e2e/test-results/crud/probes/im-C02-1774228926548.json","e2e/test-results/crud/probes/im-E01-1774228936351.json","e2e/test-results/crud/probes/im-P01-1774228934107.json","e2e/test-results/crud/probes/im-U02-1774228939732.json","e2e/test-results/crud/probes/knowledge-feedback-D01-1774228819428.json","e2e/test-results/crud/probes/knowledge-feedback-D02-1774228821536.json","e2e/test-results/crud/probes/knowledge-feedback-E01-1774228817921.json","e2e/test-results/crud/probes/knowledge-feedback-P01-1774228815781.json","e2e/test-results/crud/probes/process-designer-C01-1774228822742.json","e2e/test-results/crud/probes/process-designer-C02-1774228824586.json","e2e/test-results/crud/probes/process-designer-D01-1774228839637.json","e2e/test-results/crud/probes/process-designer-D02-1774228841175.json","e2e/test-results/crud/probes/process-designer-E01-1774228834388.json","e2e/test-results/crud/probes/process-designer-P01-1774228832112.json","e2e/test-results/crud/probes/process-designer-U01-1774228835867.json","e2e/test-results/crud/probes/process-designer-U02-1774228837789.json","e2e/test-results/crud/probes/resource-requests-C01-1774228842926.json","e2e/test-results/crud/probes/resource-requests-C02-1774228844702.json","e2e/test-results/crud/probes/resource-requests-D01-1774228859373.json","e2e/test-results/crud/probes/resource-requests-D02-1774228861489.json","e2e/test-results/crud/probes/resource-requests-E01-1774228854515.json","e2e/test-results/crud/probes/resource-requests-P01-1774228852276.json","e2e/test-results/crud/probes/resource-requests-U01-1774228855843.json","e2e/test-results/crud/probes/resource-requests-U02-1774228857762.json","e2e/test-results/crud/probes/roles-C01-1774228862700.json","e2e/test-results/crud/probes/roles-C02-1774228864549.json","e2e/test-results/crud/probes/roles-D01-1774228879608.json","e2e/test-results/crud/probes/roles-D02-1774228881181.json","e2e/test-results/crud/probes/roles-E01-1774228874266.json","e2e/test-results/crud/probes/roles-P01-1774228872022.json","e2e/test-results/crud/probes/roles-U01-1774228875744.json","e2e/test-results/crud/probes/roles-U02-1774228877671.json","e2e/test-results/crud/probes/stage-knowledge-C01-1774228882938.json","e2e/test-results/crud/probes/stage-knowledge-C02-1774228884716.json","e2e/test-results/crud/probes/stage-knowledge-D01-1774228900165.json","e2e/test-results/crud/probes/stage-knowledge-D02-1774228901711.json","e2e/test-results/crud/probes/stage-knowledge-E01-1774228894714.json","e2e/test-results/crud/probes/stage-knowledge-P01-1774228892441.json","e2e/test-results/crud/probes/stage-knowledge-U01-1774228896206.json","e2e/test-results/crud/probes/stage-knowledge-U02-1774228898148.json","e2e/test-results/crud/probes/users-C01-1774228903774.json","e2e/test-results/crud/probes/users-C02-1774228905307.json","e2e/test-results/crud/probes/users-D01-1774228921548.json","e2e/test-results/crud/probes/users-D02-1774228923127.json","e2e/test-results/crud/probes/users-E01-1774228915372.json","e2e/test-results/crud/probes/users-P01-1774228913142.json","e2e/test-results/crud/probes/users-U01-1774228917209.json","e2e/test-results/crud/probes/users-U02-1774228919166.json","e2e/tests/quarantine/.gitkeep","frontend/src/composables/__tests__/useApiQuery.test.ts","frontend/src/router/modules/acquisition.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/router/modules/compat-redirects.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/dashboard.ts","frontend/src/router/modules/finance.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/marketing.ts","frontend/src/router/modules/sales.ts","frontend/src/router/modules/service.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/router/modules/system.ts","frontend/src/stores/__tests__/app.store.test.ts","frontend/src/stores/__tests__/im.store.test.ts","frontend/src/stores/__tests__/knowledge.store.test.ts","frontend/src/styles/_containers.scss","frontend/src/styles/layers.css","frontend/src/utils/echarts.ts"],"removed":["e2e/test-results/results.json"],"modified":[".github/workflows/ci.yml","backend/.env.example","backend/package.json","backend/scripts/audit-prisma-zod-contract.ts","backend/scripts/generate-rls-policies.ts","backend/src/config/env.ts","backend/src/config/kafka.ts","backend/src/consumers/__tests__/sales.consumer.test.ts","backend/src/main.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.test.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/campaigns/campaign.service.enhanced.test.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.test.ts","backend/src/modules/channels/channel.schema.test.ts","backend/src/modules/community-gamification/community-gamification.service.test.ts","backend/src/modules/community-materials/community-material.service.test.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/content-analytics/content-analytics.service.test.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customer-analytics/customer-analytics.service.test.ts","backend/src/modules/customer-balance/customer-balance.service.test.ts","backend/src/modules/financial-reports/financial-reports.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.test.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.test.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.test.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.test.ts","backend/src/modules/im/websocket/gateway.ts","backend/src/modules/im/websocket/health.ts","backend/src/modules/im/websocket/redis-adapter.ts","backend/src/modules/integration-services/integration-service.service.test.ts","backend/src/modules/lead-qualification/qualification.service.test.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.test.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.test.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/livestream/livestream.service.test.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.test.ts","backend/src/modules/marketing-content/marketing-content.service.test.ts","backend/src/modules/marketing-forms/marketing-form.service.test.ts","backend/src/modules/marketing-north-star/marketing-north-star.service.test.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.test.ts","backend/src/modules/marketing/marketing.service.test.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-statement.service.ts","backend/src/modules/pm/pm.service.test.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/quotes/quote-decompose.service.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/rma/rma.service.test.ts","backend/src/modules/sample-requests/sample-request.service.test.ts","backend/src/modules/serial-numbers/sn.service.test.ts","backend/src/modules/sms-marketing/sms-marketing.service.test.ts","backend/src/modules/social-interactions/social-interactions.service.test.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/services/__tests__/outbox-processor.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/src/shared/state-machines/__tests__/ai-task.machine.test.ts","backend/src/shared/state-machines/__tests__/contract.machine.test.ts","backend/src/shared/utils/biz-code.test.ts","backend/src/shared/utils/crud.ts","backend/tests/unit/process-core/workflow-e2e.test.ts","backend/tests/unit/services/lead.service.test.ts","backend/tests/unit/services/quote.service.test.ts","deploy/grafana/provisioning/datasources/datasources.yml","docker-compose.prod.yml","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/playwright.config.ts","e2e/test-results/.last-run.json","frontend/package.json","frontend/src/components/common/DataTable.vue","frontend/src/components/responsive/ResponsiveChart.vue","frontend/src/main.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/supplemental.ts","frontend/src/stores/auth.ts","frontend/src/styles/index.scss","frontend/src/views/ai-agents/autopilot/AITestCases.vue","frontend/src/views/ai-agents/components/AgentModelManager.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/campaigns/analytics/index.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/FunnelChart.vue","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/inventory/Analytics.vue","frontend/src/views/knowledge/components/KnowledgeGraph.vue","frontend/src/views/service-dashboard/components/SLAPanel.vue","frontend/src/views/service-dashboard/components/SatisfactionPanel.vue","frontend/src/views/service-dashboard/components/TicketStatsPanel.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/vite.config.ts","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"339ea969ec2633756fb1a155d47723d0f61396a4","message":"chore: comprehensive governance updates and test artifacts\n\n- Add Prisma schema modularization and migration scripts\n- Add service test coverage across all modules (AI, alliance, community, marketing, etc.)\n- Add shared services (cache, custom-fields, dynamic-state-machine, encryption, etc.)\n- Add infrastructure configs (ClickHouse, Debezium, Tempo)\n- Add user manual and technical documentation with screenshots\n- Add router module organization for all centers\n- Add store/test coverage and Playwright artifacts\n- Update CI workflow, environment configs, and dependencies\n- Fix security issues in auth, kafka, and validation layers\n- Fix permission naming tests to expect kebab-case output\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/339ea969ec2633756fb1a155d47723d0f61396a4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T09:22:37+08:00","added":["backend/prisma/migrations/manual/create_dynamic_sm_and_custom_fields.sql","backend/prisma/migrations/manual/create_knowledge_embeddings.sql","backend/prisma/migrations/materialized_views.sql","backend/prisma/schema/_base.prisma","backend/prisma/schema/_enums.prisma","backend/prisma/schema/ai.prisma","backend/prisma/schema/alliance.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/customers.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/geo.prisma","backend/prisma/schema/hr.prisma","backend/prisma/schema/im.prisma","backend/prisma/schema/knowledge.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/livestream.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/products.prisma","backend/prisma/schema/project.prisma","backend/prisma/schema/renewals.prisma","backend/prisma/schema/sales.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/social.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/config/__tests__/kafka-router.test.ts","backend/src/config/tracing.ts","backend/src/modules/ai-copilot/ai-copilot.service.test.ts","backend/src/modules/alliance-analytics/alliance-analytics.service.test.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.test.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-products/alliance-product.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.test.ts","backend/src/modules/alliance-referrals/alliance-referral.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/approval-templates/approval-template.service.test.ts","backend/src/modules/campaign-targets/campaign-target.service.test.ts","backend/src/modules/campaign-use-case-templates/use-case-template.service.test.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.test.ts","backend/src/modules/community-activities/community-activity.service.test.ts","backend/src/modules/community-analytics/community-analytics.service.test.ts","backend/src/modules/community-fission/community-fission.service.test.ts","backend/src/modules/community-groups/community-group.service.test.ts","backend/src/modules/community-members/community-member.service.test.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.test.ts","backend/src/modules/content-categories/content-category.service.test.ts","backend/src/modules/content-copyright/content-copyright.service.test.ts","backend/src/modules/content-creation/content-creation.service.test.ts","backend/src/modules/content-distribution/content-distribution.service.test.ts","backend/src/modules/content-library/content-library.service.test.ts","backend/src/modules/content-review/content-review.service.test.ts","backend/src/modules/content-templates/content-template.service.test.ts","backend/src/modules/contract-templates/contract-template.service.test.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.test.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.test.ts","backend/src/modules/customer-journey/customer-journey.service.test.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.test.ts","backend/src/modules/customer-ltv/customer-ltv.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.test.ts","backend/src/modules/dimension-transform/dimension-transform.service.test.ts","backend/src/modules/disbursements/disbursement-record.service.test.ts","backend/src/modules/events/event.service.test.ts","backend/src/modules/finance/finance-credits.service.test.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-refunds.service.test.ts","backend/src/modules/finance/finance.service.test.ts","backend/src/modules/geo-analytics/geo-analytics.service.test.ts","backend/src/modules/geo-fences/geo-fences.service.test.ts","backend/src/modules/geo-keywords/geo-keyword.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.test.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.test.ts","backend/src/modules/hr/positions/positions.service.test.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.test.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.test.ts","backend/src/modules/livestream-products/livestream-product.service.test.ts","backend/src/modules/livestream-rooms/livestream-room.service.test.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.test.ts","backend/src/modules/livestream-scripts/livestream-script.service.test.ts","backend/src/modules/marketing-calendar/marketing-calendar.service.test.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.test.ts","backend/src/modules/marketing-matrix/matrix.service.test.ts","backend/src/modules/mdm/mdm.service.test.ts","backend/src/modules/menus/menu.service.test.ts","backend/src/modules/multi-touch-attribution/multi-touch-attribution.service.test.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.test.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.test.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.test.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.test.ts","backend/src/modules/reports/report.service.test.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.test.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.test.ts","backend/src/modules/self-operated-store/self-operated-store.service.test.ts","backend/src/modules/social-accounts/social-account.service.test.ts","backend/src/modules/social-auto-replies/social-auto-reply.service.test.ts","backend/src/modules/social-posts/social-post.service.test.ts","backend/src/modules/store-agency/store-agency.service.test.ts","backend/src/modules/suppliers/supplier.service.test.ts","backend/src/modules/video-calls/video-call.service.test.ts","backend/src/shared/middleware/__tests__/security-fixes.test.ts","backend/src/shared/middleware/field-encryption.middleware.ts","backend/src/shared/middleware/rate-limit.middleware.ts","backend/src/shared/services/__tests__/audit-log.service.test.ts","backend/src/shared/services/__tests__/custom-fields.service.test.ts","backend/src/shared/services/__tests__/dynamic-state-machine.service.test.ts","backend/src/shared/services/__tests__/list-cache.service.test.ts","backend/src/shared/services/__tests__/llm-gateway.service.test.ts","backend/src/shared/services/__tests__/prompt-registry.service.test.ts","backend/src/shared/services/abac-policy.service.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/services/custom-fields.service.ts","backend/src/shared/services/dynamic-state-machine.service.ts","backend/src/shared/services/field-encryption.service.ts","backend/src/shared/services/immutable-audit.service.ts","backend/src/shared/services/llm-gateway.service.ts","backend/src/shared/services/materialized-view.service.ts","backend/src/shared/services/prompt-registry.service.ts","backend/src/shared/services/rag-pipeline.service.ts","backend/src/shared/utils/__tests__/permission-normalizer.test.ts","backend/src/shared/utils/__tests__/validation-security.test.ts","backend/src/shared/utils/permission-normalizer.ts","deploy/clickhouse/config.xml","deploy/clickhouse/init.sql","deploy/debezium/register-connector.json","deploy/tempo/config.yaml","docker-compose.analytics.yml","docs/test-plan/TEST-PLAN.md","docs/user-manual/convert-tech-manual.mjs","docs/user-manual/convert-to-html.mjs","docs/user-manual/screenshots/01-login-2026-03-23T00-12-58-197Z.png","docs/user-manual/screenshots/02-dashboard-2026-03-23T00-13-11-223Z.png","docs/user-manual/screenshots/03-ai-agents-2026-03-23T00-13-44-706Z.png","docs/user-manual/screenshots/04-leads-2026-03-23T00-13-49-733Z.png","docs/user-manual/screenshots/05-lead-qualification-2026-03-23T00-13-55-424Z.png","docs/user-manual/screenshots/06-content-library-2026-03-23T00-14-01-180Z.png","docs/user-manual/screenshots/07-campaigns-2026-03-23T00-14-06-696Z.png","docs/user-manual/screenshots/08-opportunities-2026-03-23T00-14-12-799Z.png","docs/user-manual/screenshots/09-quotes-2026-03-23T00-14-20-564Z.png","docs/user-manual/screenshots/10-contracts-2026-03-23T00-14-26-796Z.png","docs/user-manual/screenshots/11-orders-2026-03-23T00-14-32-331Z.png","docs/user-manual/screenshots/12-stores-2026-03-23T00-14-37-745Z.png","docs/user-manual/screenshots/13-tickets-2026-03-23T00-14-43-846Z.png","docs/user-manual/screenshots/14-sla-2026-03-23T00-14-49-340Z.png","docs/user-manual/screenshots/15-ar-ledger-2026-03-23T00-14-54-842Z.png","docs/user-manual/screenshots/16-payments-2026-03-23T00-14-59-958Z.png","docs/user-manual/screenshots/17-purchase-orders-2026-03-23T00-15-06-034Z.png","docs/user-manual/screenshots/19-products-2026-03-23T00-15-17-479Z.png","docs/user-manual/screenshots/20-knowledge-2026-03-23T00-15-24-044Z.png","docs/user-manual/screenshots/21-approvals-2026-03-23T00-15-30-115Z.png","docs/user-manual/screenshots/22-hr-attendance-2026-03-23T00-15-36-643Z.png","docs/user-manual/screenshots/23-tenant-configs-2026-03-23T00-15-42-739Z.png","docs/user-manual/screenshots/25-roles-2026-03-23T00-15-56-801Z.png","docs/user-manual/screenshots/26-customers-2026-03-23T00-16-02-467Z.png","docs/user-manual/screenshots/27-im-2026-03-23T00-16-07-704Z.png","docs/user-manual/screenshots/tech-01-api-docs-2026-03-23T00-30-33-332Z.png","docs/user-manual/screenshots/tech-02-system-monitor-2026-03-23T00-30-42-759Z.png","docs/user-manual/screenshots/tech-03-event-logs-fix-2026-03-23T01-07-06-085Z.png","docs/user-manual/screenshots/tech-04-scheduled-jobs-2026-03-23T00-31-01-868Z.png","docs/user-manual/screenshots/tech-05-process-designer-2026-03-23T00-31-11-126Z.png","docs/user-manual/screenshots/tech-06-operation-logs-2026-03-23T00-31-20-335Z.png","docs/user-manual/screenshots/tech-07-settings-fix-2026-03-23T01-04-46-329Z.png","docs/user-manual/screenshots/tech-08-notification-configs-2026-03-23T00-31-38-845Z.png","docs/user-manual/technical-manual-content.md","docs/user-manual/technical-manual.html","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","docs/user-manual/巨嗨全域智库-技术开发手册-v1.0.pdf","docs/user-manual/巨嗨全域智库-用户使用手册-v1.0.pdf","e2e/QUARANTINE.md","e2e/playwright-report/data/0841239e09a180630fc75a988c85edb7d05739ad.md","e2e/playwright-report/data/db1fc0403d7c6af356a063a72ff6b4161a90d53a.png","e2e/test-results/.playwright-artifacts-240/040dee8f334f6c93fa788311a8961dae.png","e2e/test-results/.playwright-artifacts-240/058f808b72bfb61b392c5078d5509418.png","e2e/test-results/.playwright-artifacts-240/0893f4c2a4a7c014d48a306a37a5dc6f.png","e2e/test-results/.playwright-artifacts-240/1bd44c2c27b13a8e4e20754676e16753.png","e2e/test-results/.playwright-artifacts-240/202267e939ad0f07474e283188a20e7d.png","e2e/test-results/.playwright-artifacts-240/2643239379fd7e6fb2b3af6dacebc4fa.png","e2e/test-results/.playwright-artifacts-240/275d5fde4f54663504fbe6b3e84548d3.png","e2e/test-results/.playwright-artifacts-240/42867d3c5c17db159677472c69e89621.png","e2e/test-results/.playwright-artifacts-240/437c27fb2bacac72655c93b0b195c12b.png","e2e/test-results/.playwright-artifacts-240/4e1e7cc1649f584e86226ca11178f09d.png","e2e/test-results/.playwright-artifacts-240/505ec08f78c1ac4cfbd5a64a3e01ec29.png","e2e/test-results/.playwright-artifacts-240/50ad9cd6f3585ecf685f91c233f1100f.png","e2e/test-results/.playwright-artifacts-240/56d48ae872fca36631d1f464243747be.png","e2e/test-results/.playwright-artifacts-240/5be73b706dafcc86885ef501dccd65f9.png","e2e/test-results/.playwright-artifacts-240/61a48f54c74157d08f79a5c7638a2c75.png","e2e/test-results/.playwright-artifacts-240/67cbfdd34817fa76173eda99da253422.png","e2e/test-results/.playwright-artifacts-240/6de31eb46d49679d37fcb85e09bf50a7.png","e2e/test-results/.playwright-artifacts-240/719cc5c2833983e26d2e26fb6ecd1410.png","e2e/test-results/.playwright-artifacts-240/765d23b2babbdc342a5e33cda8d39a87.png","e2e/test-results/.playwright-artifacts-240/7f1c5b28525ac2cc41bc099e6f749ab3.png","e2e/test-results/.playwright-artifacts-240/800d3474ffbcfb84327a4cff203da5ab.png","e2e/test-results/.playwright-artifacts-240/82e93cc1f0a93cda9a36e89ffa14b831.png","e2e/test-results/.playwright-artifacts-240/834a6d7b46250bf3a7b6c74804572593.png","e2e/test-results/.playwright-artifacts-240/86a3a201ece1b35521f5b7cb565876c1.png","e2e/test-results/.playwright-artifacts-240/8ab300257837e88962f2a6b7027e13a0.png","e2e/test-results/.playwright-artifacts-240/941e36d46c2caceb2ea0fc70bed6bba5.png","e2e/test-results/.playwright-artifacts-240/9e77802004f48f7c693bc508c5d8d39b.png","e2e/test-results/.playwright-artifacts-240/a0e310742c0a3c96a02bdf2c7db7dfb2.png","e2e/test-results/.playwright-artifacts-240/c4f6a23e9cd556d8fa7d69f40bc122ac.png","e2e/test-results/.playwright-artifacts-240/c51c980a067ead90c72ee084ad8fc00a.png","e2e/test-results/.playwright-artifacts-240/d74a4495418c027fb3e4b838b4aa3521.png","e2e/test-results/.playwright-artifacts-240/dace6040beafd8d86a5baf4fe5f1ae2a.png","e2e/test-results/.playwright-artifacts-240/dce6caafe2e1fcdac2ee738369ed6098.png","e2e/test-results/.playwright-artifacts-240/df5df0fd3c83d8265e719acb6b3d0ee6.png","e2e/test-results/.playwright-artifacts-240/e07d7068d011403eeb553914cb5c364e.png","e2e/test-results/.playwright-artifacts-240/e5e82b734579c829a5939d96fcc05dff.png","e2e/test-results/.playwright-artifacts-240/e8cb101c527d05e5df6ca5fc2b904583.png","e2e/test-results/.playwright-artifacts-240/eaff6d849895b87797832af1a9a24d65.png","e2e/test-results/.playwright-artifacts-240/f0ff9429d9c71385cff328a94e1a703c.png","e2e/test-results/.playwright-artifacts-240/fba7d655d78e525212c958c6c2a7227d.png","e2e/test-results/.playwright-artifacts-241/094966347a6999bd858f5ab8a249f754.png","e2e/test-results/.playwright-artifacts-241/0b6068733b160e988728b3140bdbaef5.png","e2e/test-results/.playwright-artifacts-241/1bb8fb49ed8335c1df210ed0bbe9493c.png","e2e/test-results/.playwright-artifacts-241/1dc0352fb049eb5707b5ecdeb36e7588.png","e2e/test-results/.playwright-artifacts-241/248c7bde5073b7b22bc5737b59012f68.png","e2e/test-results/.playwright-artifacts-241/26e9b207b71a36018b2252efb70c0366.png","e2e/test-results/.playwright-artifacts-241/2ae009986a6d6b9b348e715140f0e05f.png","e2e/test-results/.playwright-artifacts-241/2e7643de8fce869a4dc6701b06f92045.png","e2e/test-results/.playwright-artifacts-241/34681405d2abf88b9b47e450f48ecaa3.png","e2e/test-results/.playwright-artifacts-241/45be60ad912dd46dfb7aa5cbee9f02d0.png","e2e/test-results/.playwright-artifacts-241/5bb07c90a274dac44963d8cceca8eb1e.png","e2e/test-results/.playwright-artifacts-241/5c81aa46578a6e4a399dcdf0d73ba8d3.png","e2e/test-results/.playwright-artifacts-241/643d257ac5cf926a92dfd4e67907a9dc.png","e2e/test-results/.playwright-artifacts-241/6454481b50c1adc6bc7e94d3fb946915.png","e2e/test-results/.playwright-artifacts-241/67232c5e7156aba881fa65d80af1207b.png","e2e/test-results/.playwright-artifacts-241/67d9026a171dc55ffc861a72ce9d4b2c.png","e2e/test-results/.playwright-artifacts-241/714aeb4c6b5950f311af88662c8b4424.png","e2e/test-results/.playwright-artifacts-241/7a8af77cb2620429282f057b7c7fd0ae.png","e2e/test-results/.playwright-artifacts-241/922282efa032ca16073c502056c2826f.png","e2e/test-results/.playwright-artifacts-241/9543fc36ad8580206d7a961590a7d83d.png","e2e/test-results/.playwright-artifacts-241/9c77f778e3b32c88fe3524c93a150de1.png","e2e/test-results/.playwright-artifacts-241/9c8a27ce50fdd70f043debd37db84261.png","e2e/test-results/.playwright-artifacts-241/9ce478697576abf803f23864fd3d01c7.png","e2e/test-results/.playwright-artifacts-241/a9df789309206957d3696bd33d4752b7.png","e2e/test-results/.playwright-artifacts-241/b16f350537ed50e46405ecd91275e9f4.png","e2e/test-results/.playwright-artifacts-241/b213a106fbdfe86fe5a2e40fd333aa0c.png","e2e/test-results/.playwright-artifacts-241/b82911d04e9ad9e3893351a21a56b011.png","e2e/test-results/.playwright-artifacts-241/b94da2213274548a93d16676dea24087.png","e2e/test-results/.playwright-artifacts-241/b98a93160e626ed6e3b05e7e527192fa.png","e2e/test-results/.playwright-artifacts-241/c2f7e527724d7e5eb8d379e3fbfc1b83.png","e2e/test-results/.playwright-artifacts-241/c800d08cc104e95000629104c11fd8b3.png","e2e/test-results/.playwright-artifacts-241/cd36bb67c1c05fedeac1923b06e6d4f5.png","e2e/test-results/.playwright-artifacts-241/d2ebbb7e8ca084380958c49f40f1bcac.png","e2e/test-results/.playwright-artifacts-241/d6ef796cc1833026cab7434b435084f4.png","e2e/test-results/.playwright-artifacts-241/dc49bd3538e061f12e7b17709d6bba0d.png","e2e/test-results/.playwright-artifacts-241/e014d348f300176842a83787a7f7938c.png","e2e/test-results/.playwright-artifacts-241/e8b738bc9925b35cacb65db8fd37bd27.png","e2e/test-results/.playwright-artifacts-241/ed833f2d058e02081a433bb71c5c71ca.png","e2e/test-results/.playwright-artifacts-241/f42b7455348166022fb51732079f16a2.png","e2e/test-results/.playwright-artifacts-241/f7ffcca2f8bd695dbd421e83dfd7dacb.png","e2e/test-results/crud-00-crud-runner-CRUD-严-0b88a-矩阵-module-resource-requests-chromium/attachments/probe-P01-828a9fe4a1cc10ad814b8901ea3f331dabb4f466.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1445f--创建成功-module-admin-settings-chromium/attachments/probe-C01-b70ed60761f6c844c0724c90be9bd3a2e28f887e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-159b4-失败-module-resource-requests-chromium/attachments/probe-C02-579660baa87709a7140145510b380b58f4afc555.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1a1ae--用户管理-P01-权限矩阵-module-users-chromium/attachments/probe-P01-21d61422e262180992f04fed0d6e1f58f4f8928a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-1ad44--异常恢复-module-admin-settings-chromium/attachments/probe-E01-167118b9260fa76b0a2a1f0fa96675e800dc6f74.json","e2e/test-results/crud-00-crud-runner-CRUD-严-20309-异常恢复-module-stage-knowledge-chromium/attachments/probe-E01-65c2d06fb134d7cb9f3931a7131cf0260ea97061.json","e2e/test-results/crud-00-crud-runner-CRUD-严-22f29-理-D02-恢复或不可见校验-module-roles-chromium/attachments/probe-D02-d26e2d296f3e8407ccfd9c2cc2f24cf6829a8508.json","e2e/test-results/crud-00-crud-runner-CRUD-严-239e9-验-module-knowledge-feedback-chromium/attachments/probe-D02-e58bb6a96915688b8f2287bbb25bab2388293c52.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2ba01-更新成功-module-stage-knowledge-chromium/attachments/probe-U01-208017e0ddf654dcec7c7e6ed78e75cdbcaeefe5.json","e2e/test-results/crud-00-crud-runner-CRUD-严-2c5eb-建校验失败-module-admin-settings-chromium/attachments/probe-C02-c917accda05528170401af83fb11a330a3cbda4d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34d7b-可见校验-module-stage-knowledge-chromium/attachments/probe-D02-821275ce5a1a2d3c0299a4438bc0551a6d53176c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-34f0e--更新成功-module-admin-settings-chromium/attachments/probe-U01-f4a4e93fb88c2ef19abde8f7dd664879de695c9f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-365ba--用户管理-C01-创建成功-module-users-chromium/attachments/probe-C01-900190bda813dce7a5e62caaa492f5a3677f3e23.json","e2e/test-results/crud-00-crud-runner-CRUD-严-392a1--im-即时通讯-E01-异常恢复-module-im-chromium/attachments/probe-E01-fa3a07d4be5ae62afd985ab459bbd15a33a2fdef.json","e2e/test-results/crud-00-crud-runner-CRUD-严-3a38c--D01-删除-软-硬-可用-module-roles-chromium/attachments/probe-D01-ae5282c3a94d95edce6b6b614e0f1c7bb0cacec0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4220e--角色管理-P01-权限矩阵-module-roles-chromium/attachments/probe-P01-bf40ed0eb839caf8e2dc359b3fbf41adc61a8186.json","e2e/test-results/crud-00-crud-runner-CRUD-严-43344-校验失败-module-stage-knowledge-chromium/attachments/probe-C02-c40333d9c899532c29747a98c3608a229f081c35.json","e2e/test-results/crud-00-crud-runner-CRUD-严-460f0-户管理-C02-创建校验失败-module-users-chromium/attachments/probe-C02-793ed6868532d6f08fa3b7e01ef91cee883edc62.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b07d--可用-module-process-designer-chromium/attachments/probe-D01-acbfe0f811bb517717a6b841a585892cbebff24c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4b4f5-可用-module-resource-requests-chromium/attachments/probe-D01-2e8e53337f638a07ab7cc317baa3d97366c245e0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-4c7f3--im-即时通讯-P01-权限矩阵-module-im-chromium/attachments/probe-P01-b22bb94be6b4cf1a140ec1c9f11b2ce4b3ea633f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-52d8f-校验-module-resource-requests-chromium/attachments/probe-D02-dbcf98c1134a088b83217a812d0c0a8650ac69a3.json","e2e/test-results/crud-00-crud-runner-CRUD-严-538f0-色管理-C02-创建校验失败-module-roles-chromium/attachments/probe-C02-2f4ee0aa5a1a7bf30860781b2ab8e052c752a87c.json","e2e/test-results/crud-00-crud-runner-CRUD-严-60bbd-管理-U02-更新权限-冲突-module-roles-chromium/attachments/probe-U02-0531249436aff73c81d0fc89355c4cbc7167ec8d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6bff7-理-D02-恢复或不可见校验-module-users-chromium/attachments/probe-D02-cfa483afa2a0dcba0b625f169d4ddfd4df7815e9.json","e2e/test-results/crud-00-crud-runner-CRUD-严-6d194-见校验-module-process-designer-chromium/attachments/probe-D02-ace63a12d5911b8f54a54b89d94362c9b7276535.json","e2e/test-results/crud-00-crud-runner-CRUD-严-72cf4--角色管理-U01-更新成功-module-roles-chromium/attachments/probe-U01-daf71b632d68b74b441594222818913f9937bd60.json","e2e/test-results/crud-00-crud-runner-CRUD-严-77ec5-创建成功-module-stage-knowledge-chromium/attachments/probe-C01-073ec52dcaf122cc92ed77c881d6407f63e053ea.json","e2e/test-results/crud-00-crud-runner-CRUD-严-7f7f1--列表可读-module-admin-settings-chromium/attachments/probe-R01-1b19c02416b08eebec04e254505821f27bda570e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89494--冲突-module-process-designer-chromium/attachments/probe-U02-57053c2bcdfde404efd732026ff7bbb7c2a742c6.json","e2e/test-results/crud-00-crud-runner-CRUD-严-89599-冲突-module-resource-requests-chromium/attachments/probe-U02-3bbd6461e4141361d2910d0d997a2174989df606.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8d2e4-硬-可用-module-stage-knowledge-chromium/attachments/probe-D01-bcca5204eae3c340bcf2e5d455dde9e35cc10053.json","e2e/test-results/crud-00-crud-runner-CRUD-严-8fa15-复-module-knowledge-feedback-chromium/attachments/probe-E01-768d744b990df78d05147237c0636c4ee771c1ed.json","e2e/test-results/crud-00-crud-runner-CRUD-严-9d5c3-新成功-module-process-designer-chromium/attachments/probe-U01-b82cb3f43ec5fd03fbcf5e9a47076d4b327698f7.json","e2e/test-results/crud-00-crud-runner-CRUD-严-a99bb-m-即时通讯-C02-创建校验失败-module-im-chromium/attachments/probe-C02-fd074e16ad7f94b54706d083613b4b5d32b93e4b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b4daf--权限矩阵-module-admin-settings-chromium/attachments/probe-P01-d0080ae80a82c103bcd848bca31d749b3dcc8352.json","e2e/test-results/crud-00-crud-runner-CRUD-严-b8549-成功-module-resource-requests-chromium/attachments/probe-U01-ca13f11ed3d09b5def3fe7e441ad40110d2b0379.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c4557--用户管理-U01-更新成功-module-users-chromium/attachments/probe-U01-712df3b828fbaea6fc759167308e86fa7855176f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c6c39-恢复-module-resource-requests-chromium/attachments/probe-E01-e9b591e744c63185541a625ceba5e5d973b6746b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-c7867--角色管理-C01-创建成功-module-roles-chromium/attachments/probe-C01-7a7d119a902c3f458539ddaa114898e0a33f4d8f.json","e2e/test-results/crud-00-crud-runner-CRUD-严-cc828--即时通讯-U02-更新权限-冲突-module-im-chromium/attachments/probe-U02-76760ce7a07288e361d11e3be6c77b61b817ee40.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ce2ac--详情可读-module-admin-settings-chromium/attachments/probe-R03-cea057b72b957fdb65cc5e3b674bfa2f05636e5e.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d14d4--用户管理-E01-异常恢复-module-users-chromium/attachments/probe-E01-6169c2a0eaab0a87b4892d56e1c64902f64e0217.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d3762-限-冲突-module-stage-knowledge-chromium/attachments/probe-U02-9e395cc67c38073bfd6eb6ad38fe5ac43a337d56.json","e2e/test-results/crud-00-crud-runner-CRUD-严-d6fb4-常恢复-module-process-designer-chromium/attachments/probe-E01-b1f8e178d5a774eddb298c119317b36e0414d60d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-de878--角色管理-E01-异常恢复-module-roles-chromium/attachments/probe-E01-bb017dd97b92cb05f37191c933e038af13a8c04a.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e43a6-限矩阵-module-process-designer-chromium/attachments/probe-P01-e9df19eeca43b46dca36a135566329b6da44cacd.json","e2e/test-results/crud-00-crud-runner-CRUD-严-e4560-管理-U02-更新权限-冲突-module-users-chromium/attachments/probe-U02-a105db3f1ef20b6b8ba0ed401d244b376932736b.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ea129-阵-module-knowledge-feedback-chromium/attachments/probe-P01-c3160dc84a9d7fea219587cb594dd8add36d515d.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ec3b8-验失败-module-process-designer-chromium/attachments/probe-C02-dae6185bd96e2e2c88c4bb9104517a939b2afb15.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ed28f-权限矩阵-module-stage-knowledge-chromium/attachments/probe-P01-703da6de6b8031b653cf5cb16f3656f251917838.json","e2e/test-results/crud-00-crud-runner-CRUD-严-ee943-成功-module-resource-requests-chromium/attachments/probe-C01-96dc059a7597ae051b9d321db1cb4b470806e6f4.json","e2e/test-results/crud-00-crud-runner-CRUD-严-eee91-用-module-knowledge-feedback-chromium/attachments/probe-D01-43d0c2e97c66fbd3301826ea68d66fce62cb7eb0.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f3c4d-询筛选分页-module-admin-settings-chromium/attachments/probe-R02-55334ddef6735b6dddfc2d2e6143a089efb9be24.json","e2e/test-results/crud-00-crud-runner-CRUD-严-f690b--D01-删除-软-硬-可用-module-users-chromium/attachments/probe-D01-6438fdd0fae658cd354e2761efa5b0065ab74607.json","e2e/test-results/crud-00-crud-runner-CRUD-严-fabfb-建成功-module-process-designer-chromium/attachments/probe-C01-65e7119661d41d890e1f8d734662a8ce3b15268c.json","e2e/test-results/crud/probes/admin-settings-C01-1774228943803.json","e2e/test-results/crud/probes/admin-settings-C02-1774228945689.json","e2e/test-results/crud/probes/admin-settings-E01-1774228954200.json","e2e/test-results/crud/probes/admin-settings-P01-1774228952357.json","e2e/test-results/crud/probes/admin-settings-R01-1774228946846.json","e2e/test-results/crud/probes/admin-settings-R02-1774228948718.json","e2e/test-results/crud/probes/admin-settings-R03-1774228950565.json","e2e/test-results/crud/probes/admin-settings-U01-1774228956047.json","e2e/test-results/crud/probes/im-C02-1774228926548.json","e2e/test-results/crud/probes/im-E01-1774228936351.json","e2e/test-results/crud/probes/im-P01-1774228934107.json","e2e/test-results/crud/probes/im-U02-1774228939732.json","e2e/test-results/crud/probes/knowledge-feedback-D01-1774228819428.json","e2e/test-results/crud/probes/knowledge-feedback-D02-1774228821536.json","e2e/test-results/crud/probes/knowledge-feedback-E01-1774228817921.json","e2e/test-results/crud/probes/knowledge-feedback-P01-1774228815781.json","e2e/test-results/crud/probes/process-designer-C01-1774228822742.json","e2e/test-results/crud/probes/process-designer-C02-1774228824586.json","e2e/test-results/crud/probes/process-designer-D01-1774228839637.json","e2e/test-results/crud/probes/process-designer-D02-1774228841175.json","e2e/test-results/crud/probes/process-designer-E01-1774228834388.json","e2e/test-results/crud/probes/process-designer-P01-1774228832112.json","e2e/test-results/crud/probes/process-designer-U01-1774228835867.json","e2e/test-results/crud/probes/process-designer-U02-1774228837789.json","e2e/test-results/crud/probes/resource-requests-C01-1774228842926.json","e2e/test-results/crud/probes/resource-requests-C02-1774228844702.json","e2e/test-results/crud/probes/resource-requests-D01-1774228859373.json","e2e/test-results/crud/probes/resource-requests-D02-1774228861489.json","e2e/test-results/crud/probes/resource-requests-E01-1774228854515.json","e2e/test-results/crud/probes/resource-requests-P01-1774228852276.json","e2e/test-results/crud/probes/resource-requests-U01-1774228855843.json","e2e/test-results/crud/probes/resource-requests-U02-1774228857762.json","e2e/test-results/crud/probes/roles-C01-1774228862700.json","e2e/test-results/crud/probes/roles-C02-1774228864549.json","e2e/test-results/crud/probes/roles-D01-1774228879608.json","e2e/test-results/crud/probes/roles-D02-1774228881181.json","e2e/test-results/crud/probes/roles-E01-1774228874266.json","e2e/test-results/crud/probes/roles-P01-1774228872022.json","e2e/test-results/crud/probes/roles-U01-1774228875744.json","e2e/test-results/crud/probes/roles-U02-1774228877671.json","e2e/test-results/crud/probes/stage-knowledge-C01-1774228882938.json","e2e/test-results/crud/probes/stage-knowledge-C02-1774228884716.json","e2e/test-results/crud/probes/stage-knowledge-D01-1774228900165.json","e2e/test-results/crud/probes/stage-knowledge-D02-1774228901711.json","e2e/test-results/crud/probes/stage-knowledge-E01-1774228894714.json","e2e/test-results/crud/probes/stage-knowledge-P01-1774228892441.json","e2e/test-results/crud/probes/stage-knowledge-U01-1774228896206.json","e2e/test-results/crud/probes/stage-knowledge-U02-1774228898148.json","e2e/test-results/crud/probes/users-C01-1774228903774.json","e2e/test-results/crud/probes/users-C02-1774228905307.json","e2e/test-results/crud/probes/users-D01-1774228921548.json","e2e/test-results/crud/probes/users-D02-1774228923127.json","e2e/test-results/crud/probes/users-E01-1774228915372.json","e2e/test-results/crud/probes/users-P01-1774228913142.json","e2e/test-results/crud/probes/users-U01-1774228917209.json","e2e/test-results/crud/probes/users-U02-1774228919166.json","e2e/tests/quarantine/.gitkeep","frontend/src/composables/__tests__/useApiQuery.test.ts","frontend/src/router/modules/acquisition.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/router/modules/compat-redirects.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/dashboard.ts","frontend/src/router/modules/finance.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/marketing.ts","frontend/src/router/modules/sales.ts","frontend/src/router/modules/service.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/router/modules/system.ts","frontend/src/stores/__tests__/app.store.test.ts","frontend/src/stores/__tests__/im.store.test.ts","frontend/src/stores/__tests__/knowledge.store.test.ts","frontend/src/styles/_containers.scss","frontend/src/styles/layers.css","frontend/src/utils/echarts.ts"],"removed":["e2e/test-results/results.json"],"modified":[".github/workflows/ci.yml","backend/.env.example","backend/package.json","backend/scripts/audit-prisma-zod-contract.ts","backend/scripts/generate-rls-policies.ts","backend/src/config/env.ts","backend/src/config/kafka.ts","backend/src/consumers/__tests__/sales.consumer.test.ts","backend/src/main.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.test.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/campaigns/campaign.service.enhanced.test.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.test.ts","backend/src/modules/channels/channel.schema.test.ts","backend/src/modules/community-gamification/community-gamification.service.test.ts","backend/src/modules/community-materials/community-material.service.test.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/content-analytics/content-analytics.service.test.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customer-analytics/customer-analytics.service.test.ts","backend/src/modules/customer-balance/customer-balance.service.test.ts","backend/src/modules/financial-reports/financial-reports.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.test.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.test.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.test.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.test.ts","backend/src/modules/im/websocket/gateway.ts","backend/src/modules/im/websocket/health.ts","backend/src/modules/im/websocket/redis-adapter.ts","backend/src/modules/integration-services/integration-service.service.test.ts","backend/src/modules/lead-qualification/qualification.service.test.ts","backend/src/modules/leads/lead-sla.service.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.service.test.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.test.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/livestream/livestream.service.test.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.test.ts","backend/src/modules/marketing-content/marketing-content.service.test.ts","backend/src/modules/marketing-forms/marketing-form.service.test.ts","backend/src/modules/marketing-north-star/marketing-north-star.service.test.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.test.ts","backend/src/modules/marketing/marketing.service.test.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-statement.service.ts","backend/src/modules/pm/pm.service.test.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/quotes/quote-decompose.service.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/rma/rma.service.test.ts","backend/src/modules/sample-requests/sample-request.service.test.ts","backend/src/modules/serial-numbers/sn.service.test.ts","backend/src/modules/sms-marketing/sms-marketing.service.test.ts","backend/src/modules/social-interactions/social-interactions.service.test.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/services/__tests__/outbox-processor.service.test.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/outbox-processor.service.ts","backend/src/shared/state-machines/__tests__/ai-task.machine.test.ts","backend/src/shared/state-machines/__tests__/contract.machine.test.ts","backend/src/shared/utils/biz-code.test.ts","backend/src/shared/utils/crud.ts","backend/tests/unit/process-core/workflow-e2e.test.ts","backend/tests/unit/services/lead.service.test.ts","backend/tests/unit/services/quote.service.test.ts","deploy/grafana/provisioning/datasources/datasources.yml","docker-compose.prod.yml","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/playwright.config.ts","e2e/test-results/.last-run.json","frontend/package.json","frontend/src/components/common/DataTable.vue","frontend/src/components/responsive/ResponsiveChart.vue","frontend/src/main.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/supplemental.ts","frontend/src/stores/auth.ts","frontend/src/styles/index.scss","frontend/src/views/ai-agents/autopilot/AITestCases.vue","frontend/src/views/ai-agents/components/AgentModelManager.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/campaigns/analytics/index.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/FunnelChart.vue","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/inventory/Analytics.vue","frontend/src/views/knowledge/components/KnowledgeGraph.vue","frontend/src/views/service-dashboard/components/SLAPanel.vue","frontend/src/views/service-dashboard/components/SatisfactionPanel.vue","frontend/src/views/service-dashboard/components/TicketStatsPanel.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/vite.config.ts","pnpm-lock.yaml"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1919936,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:52:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
20
|
1774229412
|
1774229587
|
0
|
1774229063
|
1774229667
|
group: integration-${{ github.workflow }}-${{ gith group: integration-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
integration-integration-test.yml-refs/heads/main
|
1
|
Edit
Delete
|