|
7723
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7648
|
-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
|
1774334140
|
1774334140
|
0
|
1774334140
|
1774334140
|
|
|
0
|
Edit
Delete
|
|
7724
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7649
|
-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
|
1774334440
|
1774334440
|
0
|
1774334440
|
1774334440
|
|
|
0
|
Edit
Delete
|
|
7725
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7650
|
-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
|
1774334740
|
1774334740
|
0
|
1774334740
|
1774334740
|
|
|
0
|
Edit
Delete
|
|
7726
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7651
|
-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
|
1774335040
|
1774335040
|
0
|
1774335040
|
1774335040
|
|
|
0
|
Edit
Delete
|
|
7727
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7652
|
-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
|
1774335340
|
1774335340
|
0
|
1774335340
|
1774335340
|
|
|
0
|
Edit
Delete
|
|
7728
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7653
|
-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
|
1774335640
|
1774335640
|
0
|
1774335640
|
1774335640
|
|
|
0
|
Edit
Delete
|
|
7729
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7654
|
-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
|
1774335940
|
1774335940
|
0
|
1774335940
|
1774335940
|
|
|
0
|
Edit
Delete
|
|
7730
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7655
|
-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
|
1774336240
|
1774336240
|
0
|
1774336240
|
1774336240
|
|
|
0
|
Edit
Delete
|
|
7731
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7656
|
-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
|
1774336540
|
1774336540
|
0
|
1774336540
|
1774336540
|
|
|
0
|
Edit
Delete
|
|
7732
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7657
|
-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
|
1774336840
|
1774336840
|
0
|
1774336840
|
1774336840
|
|
|
0
|
Edit
Delete
|
|
7733
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7658
|
-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
|
1774337140
|
1774337140
|
0
|
1774337140
|
1774337140
|
|
|
0
|
Edit
Delete
|
|
7734
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7659
|
-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
|
1774337440
|
1774337440
|
0
|
1774337440
|
1774337440
|
|
|
0
|
Edit
Delete
|
|
7735
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7660
|
-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
|
1774337740
|
1774337740
|
0
|
1774337740
|
1774337740
|
|
|
0
|
Edit
Delete
|
|
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
|
|
27
|
test111888899ssss
|
2
|
2
|
hello-world.yaml
|
26
|
1
|
0
|
refs/heads/main
|
99892b593bb6a634103b6fd62b6ca5665f93f2a5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db265e985719016459800733229be1943b1efaef","after":"99892b593bb6a634103b6fd62b6ca5665f93f2a5","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/db265e985719016459800733229be1943b1efaef...99892b593bb6a634103b6fd62b6ca5665f93f2a5","commits":[{"id":"99892b593bb6a634103b6fd62b6ca5665f93f2a5","message":"test111888899ssss\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/99892b593bb6a634103b6fd62b6ca5665f93f2a5","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T16:53:54+08:00","added":[],"removed":[],"modified":["pc/kg.php"]}],"total_commits":0,"head_commit":{"id":"99892b593bb6a634103b6fd62b6ca5665f93f2a5","message":"test111888899ssss\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/99892b593bb6a634103b6fd62b6ca5665f93f2a5","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-12T16:53:54+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":17735,"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-12T16:42:40+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
|
1770886440
|
1770886443
|
0
|
1770886439
|
1770886443
|
NULL
|
|
0
|
Edit
Delete
|
|
2
|
更新 .gitea/workflows/hello-world.yaml
|
2
|
2
|
hello-world.yaml
|
1
|
1
|
0
|
refs/heads/main
|
eeeea65072a95dcb64d00de48d403734fce896f6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d9ade4fb0b23546fa112583d8bdad18a73948eb0","after":"eeeea65072a95dcb64d00de48d403734fce896f6","compare_url":"https://gitea.g-hi.com/juhai/testpc/compare/d9ade4fb0b23546fa112583d8bdad18a73948eb0...eeeea65072a95dcb64d00de48d403734fce896f6","commits":[{"id":"eeeea65072a95dcb64d00de48d403734fce896f6","message":"更新 .gitea/workflows/hello-world.yaml\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/eeeea65072a95dcb64d00de48d403734fce896f6","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-06T15:28:03+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]}],"total_commits":0,"head_commit":{"id":"eeeea65072a95dcb64d00de48d403734fce896f6","message":"更新 .gitea/workflows/hello-world.yaml\n","url":"https://gitea.g-hi.com/juhai/testpc/commit/eeeea65072a95dcb64d00de48d403734fce896f6","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-02-06T15:28:03+08:00","added":[],"removed":[],"modified":[".gitea/workflows/hello-world.yaml"]},"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":17695,"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-06T15:27:16+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
|
1770362886
|
1770362887
|
0
|
1770362885
|
1770362887
|
NULL
|
|
0
|
Edit
Delete
|
|
81
|
Add opposite relations for audit log
|
6
|
5
|
ci.yml
|
42
|
5
|
0
|
refs/heads/main
|
31212e80da71dfee521244839853f811bea867e4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d96c65b28668f885c01649e4d31f5f9676cfe863","after":"31212e80da71dfee521244839853f811bea867e4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/d96c65b28668f885c01649e4d31f5f9676cfe863...31212e80da71dfee521244839853f811bea867e4","commits":[{"id":"31212e80da71dfee521244839853f811bea867e4","message":"Add opposite relations for audit log\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31212e80da71dfee521244839853f811bea867e4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-20T22:50:49+08:00","added":[],"removed":[],"modified":["API 模块手写与工厂函数对比分析.md","backend/src/main.ts","frontend/src/api/modules/audit-logs.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/departments.ts","frontend/src/api/modules/dictionaries.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/positions.ts","frontend/src/api/modules/roles.ts"]},{"id":"860236037bd2e91002a54e00a30e4295e8a68920","message":"Add missing Prisma relation fields\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/860236037bd2e91002a54e00a30e4295e8a68920","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-20T22:15:35+08:00","added":["backend/src/modules/ad-reports/ad-report.service.test.ts"],"removed":[],"modified":["backend/src/modules/ad-reports/ad-report.service.ts","frontend/src/api/modules/customers.ts"]},{"id":"a2fa4d2c6a74812954b9066d4d880ef948e337a5","message":"Fix agent audit logs relations\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a2fa4d2c6a74812954b9066d4d880ef948e337a5","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-20T22:11:14+08:00","added":[],"removed":[],"modified":["backend/src/modules/ad-reports/ad-report.service.ts"]},{"id":"868ddd29c52d54bfb6fddaaf346f8287d5bc738b","message":"Fix agent audit log relations\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/868ddd29c52d54bfb6fddaaf346f8287d5bc738b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-20T22:03:54+08:00","added":[],"removed":[],"modified":["backend/src/modules/ad-reports/ad-report.service.ts","frontend/src/views/ad-placement/Creatives.vue"]},{"id":"965dc4705275f2ba7e9c0e3316fd3fa7790a9934","message":"Fix agent audit log relations\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/965dc4705275f2ba7e9c0e3316fd3fa7790a9934","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-20T21:58:04+08:00","added":["API 模块手写与工厂函数对比分析.md"],"removed":[],"modified":["frontend/src/api/modules/ad-creatives.ts"]}],"total_commits":0,"head_commit":{"id":"31212e80da71dfee521244839853f811bea867e4","message":"Add opposite relations for audit log\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31212e80da71dfee521244839853f811bea867e4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-20T22:50:49+08:00","added":[],"removed":[],"modified":["API 模块手写与工厂函数对比分析.md","backend/src/main.ts","frontend/src/api/modules/audit-logs.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/departments.ts","frontend/src/api/modules/dictionaries.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/positions.ts","frontend/src/api/modules/roles.ts"]},"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/avatars/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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":471900,"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,"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-02-24T00:25:35+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":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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
|
1771864174
|
1771864174
|
0
|
1771864161
|
1771864174
|
NULL
|
|
0
|
Edit
Delete
|
|
9655
|
Harden deploy checks and cache-aware production im Harden deploy checks and cache-aware production image builds...
|
6
|
5
|
e2e-tests.yml
|
9579
|
5
|
0
|
refs/heads/main
|
1b7720d8bdc8f3778e6ad14715be746db29627af
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d85951e777b951a8957f68cdbf1d581dc9c91479","after":"1b7720d8bdc8f3778e6ad14715be746db29627af","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/d85951e777b951a8957f68cdbf1d581dc9c91479...1b7720d8bdc8f3778e6ad14715be746db29627af","commits":[{"id":"1b7720d8bdc8f3778e6ad14715be746db29627af","message":"Harden deploy checks and cache-aware production image builds\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b7720d8bdc8f3778e6ad14715be746db29627af","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T16:56:52+08:00","added":["frontend/Dockerfile.prebuilt"],"removed":[],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/tests/api/admin-settings.test.ts","backend/tests/api/contracts.test.ts","backend/tests/api/event-logs.test.ts","backend/tests/api/notifications.test.ts","backend/tests/api/setup.ts","backend/tests/api/system-events.test.ts","backend/tests/api/tenant-configs.test.ts","docs/deploy-aliyun.md","frontend/Dockerfile","frontend/src/views/customers/components/DetailMobile.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/pre-deploy-check.sh"]}],"total_commits":0,"head_commit":{"id":"1b7720d8bdc8f3778e6ad14715be746db29627af","message":"Harden deploy checks and cache-aware production image builds\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b7720d8bdc8f3778e6ad14715be746db29627af","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T16:56:52+08:00","added":["frontend/Dockerfile.prebuilt"],"removed":[],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/tests/api/admin-settings.test.ts","backend/tests/api/contracts.test.ts","backend/tests/api/event-logs.test.ts","backend/tests/api/notifications.test.ts","backend/tests/api/setup.ts","backend/tests/api/system-events.test.ts","backend/tests/api/tenant-configs.test.ts","docs/deploy-aliyun.md","frontend/Dockerfile","frontend/src/views/customers/components/DetailMobile.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/pre-deploy-check.sh"]},"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":1904112,"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":2,"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-30T13:22:34+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
|
1774862379
|
1774863205
|
0
|
1774862378
|
1774863395
|
|
|
0
|
Edit
Delete
|
|
9656
|
Harden deploy checks and cache-aware production im Harden deploy checks and cache-aware production image builds...
|
6
|
5
|
test-pipeline.yml
|
9580
|
5
|
0
|
refs/heads/main
|
1b7720d8bdc8f3778e6ad14715be746db29627af
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d85951e777b951a8957f68cdbf1d581dc9c91479","after":"1b7720d8bdc8f3778e6ad14715be746db29627af","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/d85951e777b951a8957f68cdbf1d581dc9c91479...1b7720d8bdc8f3778e6ad14715be746db29627af","commits":[{"id":"1b7720d8bdc8f3778e6ad14715be746db29627af","message":"Harden deploy checks and cache-aware production image builds\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b7720d8bdc8f3778e6ad14715be746db29627af","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T16:56:52+08:00","added":["frontend/Dockerfile.prebuilt"],"removed":[],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/tests/api/admin-settings.test.ts","backend/tests/api/contracts.test.ts","backend/tests/api/event-logs.test.ts","backend/tests/api/notifications.test.ts","backend/tests/api/setup.ts","backend/tests/api/system-events.test.ts","backend/tests/api/tenant-configs.test.ts","docs/deploy-aliyun.md","frontend/Dockerfile","frontend/src/views/customers/components/DetailMobile.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/pre-deploy-check.sh"]}],"total_commits":0,"head_commit":{"id":"1b7720d8bdc8f3778e6ad14715be746db29627af","message":"Harden deploy checks and cache-aware production image builds\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b7720d8bdc8f3778e6ad14715be746db29627af","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T16:56:52+08:00","added":["frontend/Dockerfile.prebuilt"],"removed":[],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/tests/api/admin-settings.test.ts","backend/tests/api/contracts.test.ts","backend/tests/api/event-logs.test.ts","backend/tests/api/notifications.test.ts","backend/tests/api/setup.ts","backend/tests/api/system-events.test.ts","backend/tests/api/tenant-configs.test.ts","docs/deploy-aliyun.md","frontend/Dockerfile","frontend/src/views/customers/components/DetailMobile.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/pre-deploy-check.sh"]},"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":1904112,"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":2,"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-30T13:22:34+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
|
1774863206
|
1774863327
|
0
|
1774862379
|
1774863627
|
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
|
|
9657
|
Harden deploy checks and cache-aware production im Harden deploy checks and cache-aware production image builds...
|
6
|
5
|
health-check.yml
|
9581
|
-2
|
214
|
refs/heads/main
|
1b7720d8bdc8f3778e6ad14715be746db29627af
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d85951e777b951a8957f68cdbf1d581dc9c91479","after":"1b7720d8bdc8f3778e6ad14715be746db29627af","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/d85951e777b951a8957f68cdbf1d581dc9c91479...1b7720d8bdc8f3778e6ad14715be746db29627af","commits":[{"id":"1b7720d8bdc8f3778e6ad14715be746db29627af","message":"Harden deploy checks and cache-aware production image builds\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b7720d8bdc8f3778e6ad14715be746db29627af","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T16:56:52+08:00","added":["frontend/Dockerfile.prebuilt"],"removed":[],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/tests/api/admin-settings.test.ts","backend/tests/api/contracts.test.ts","backend/tests/api/event-logs.test.ts","backend/tests/api/notifications.test.ts","backend/tests/api/setup.ts","backend/tests/api/system-events.test.ts","backend/tests/api/tenant-configs.test.ts","docs/deploy-aliyun.md","frontend/Dockerfile","frontend/src/views/customers/components/DetailMobile.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/pre-deploy-check.sh"]}],"total_commits":0,"head_commit":{"id":"1b7720d8bdc8f3778e6ad14715be746db29627af","message":"Harden deploy checks and cache-aware production image builds\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b7720d8bdc8f3778e6ad14715be746db29627af","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T16:56:52+08:00","added":["frontend/Dockerfile.prebuilt"],"removed":[],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/tests/api/admin-settings.test.ts","backend/tests/api/contracts.test.ts","backend/tests/api/event-logs.test.ts","backend/tests/api/notifications.test.ts","backend/tests/api/setup.ts","backend/tests/api/system-events.test.ts","backend/tests/api/tenant-configs.test.ts","docs/deploy-aliyun.md","frontend/Dockerfile","frontend/src/views/customers/components/DetailMobile.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/pre-deploy-check.sh"]},"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":1904112,"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":2,"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-30T13:22:34+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
|
1774863328
|
1774863328
|
0
|
1774862418
|
1774863328
|
|
|
0
|
Edit
Delete
|
|
9658
|
Harden deploy checks and cache-aware production im Harden deploy checks and cache-aware production image builds...
|
6
|
5
|
health-check.yml
|
9582
|
-2
|
214
|
refs/heads/main
|
1b7720d8bdc8f3778e6ad14715be746db29627af
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d85951e777b951a8957f68cdbf1d581dc9c91479","after":"1b7720d8bdc8f3778e6ad14715be746db29627af","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/d85951e777b951a8957f68cdbf1d581dc9c91479...1b7720d8bdc8f3778e6ad14715be746db29627af","commits":[{"id":"1b7720d8bdc8f3778e6ad14715be746db29627af","message":"Harden deploy checks and cache-aware production image builds\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b7720d8bdc8f3778e6ad14715be746db29627af","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T16:56:52+08:00","added":["frontend/Dockerfile.prebuilt"],"removed":[],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/tests/api/admin-settings.test.ts","backend/tests/api/contracts.test.ts","backend/tests/api/event-logs.test.ts","backend/tests/api/notifications.test.ts","backend/tests/api/setup.ts","backend/tests/api/system-events.test.ts","backend/tests/api/tenant-configs.test.ts","docs/deploy-aliyun.md","frontend/Dockerfile","frontend/src/views/customers/components/DetailMobile.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/pre-deploy-check.sh"]}],"total_commits":0,"head_commit":{"id":"1b7720d8bdc8f3778e6ad14715be746db29627af","message":"Harden deploy checks and cache-aware production image builds\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b7720d8bdc8f3778e6ad14715be746db29627af","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T16:56:52+08:00","added":["frontend/Dockerfile.prebuilt"],"removed":[],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/tests/api/admin-settings.test.ts","backend/tests/api/contracts.test.ts","backend/tests/api/event-logs.test.ts","backend/tests/api/notifications.test.ts","backend/tests/api/setup.ts","backend/tests/api/system-events.test.ts","backend/tests/api/tenant-configs.test.ts","docs/deploy-aliyun.md","frontend/Dockerfile","frontend/src/views/customers/components/DetailMobile.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/pre-deploy-check.sh"]},"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":1904112,"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":2,"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-30T13:22:34+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
|
1774863330
|
1774863330
|
0
|
1774862718
|
1774863330
|
|
|
0
|
Edit
Delete
|
|
9659
|
Harden deploy checks and cache-aware production im Harden deploy checks and cache-aware production image builds...
|
6
|
5
|
health-check.yml
|
9583
|
-2
|
214
|
refs/heads/main
|
1b7720d8bdc8f3778e6ad14715be746db29627af
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d85951e777b951a8957f68cdbf1d581dc9c91479","after":"1b7720d8bdc8f3778e6ad14715be746db29627af","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/d85951e777b951a8957f68cdbf1d581dc9c91479...1b7720d8bdc8f3778e6ad14715be746db29627af","commits":[{"id":"1b7720d8bdc8f3778e6ad14715be746db29627af","message":"Harden deploy checks and cache-aware production image builds\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b7720d8bdc8f3778e6ad14715be746db29627af","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T16:56:52+08:00","added":["frontend/Dockerfile.prebuilt"],"removed":[],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/tests/api/admin-settings.test.ts","backend/tests/api/contracts.test.ts","backend/tests/api/event-logs.test.ts","backend/tests/api/notifications.test.ts","backend/tests/api/setup.ts","backend/tests/api/system-events.test.ts","backend/tests/api/tenant-configs.test.ts","docs/deploy-aliyun.md","frontend/Dockerfile","frontend/src/views/customers/components/DetailMobile.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/pre-deploy-check.sh"]}],"total_commits":0,"head_commit":{"id":"1b7720d8bdc8f3778e6ad14715be746db29627af","message":"Harden deploy checks and cache-aware production image builds\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b7720d8bdc8f3778e6ad14715be746db29627af","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T16:56:52+08:00","added":["frontend/Dockerfile.prebuilt"],"removed":[],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/tests/api/admin-settings.test.ts","backend/tests/api/contracts.test.ts","backend/tests/api/event-logs.test.ts","backend/tests/api/notifications.test.ts","backend/tests/api/setup.ts","backend/tests/api/system-events.test.ts","backend/tests/api/tenant-configs.test.ts","docs/deploy-aliyun.md","frontend/Dockerfile","frontend/src/views/customers/components/DetailMobile.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/pre-deploy-check.sh"]},"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":1904112,"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":2,"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-30T13:22:34+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
|
1774863332
|
1774863332
|
0
|
1774863018
|
1774863332
|
|
|
0
|
Edit
Delete
|