|
7940
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7865
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774396824
|
1774396824
|
0
|
1774396824
|
1774396824
|
|
|
0
|
Edit
Delete
|
|
7941
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
e2e-tests.yml
|
7866
|
-2
|
138
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
2
|
20
|
1774396826
|
1774396933
|
0
|
1774396824
|
1774396938
|
|
|
0
|
Edit
Delete
|
|
7942
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7867
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774397124
|
1774397124
|
0
|
1774397124
|
1774397124
|
|
|
0
|
Edit
Delete
|
|
7943
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7868
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774397424
|
1774397424
|
0
|
1774397424
|
1774397424
|
|
|
0
|
Edit
Delete
|
|
7944
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7869
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774397724
|
1774397724
|
0
|
1774397724
|
1774397724
|
|
|
0
|
Edit
Delete
|
|
7945
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7870
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774398024
|
1774398024
|
0
|
1774398024
|
1774398024
|
|
|
0
|
Edit
Delete
|
|
7946
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7871
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774398324
|
1774398324
|
0
|
1774398324
|
1774398324
|
|
|
0
|
Edit
Delete
|
|
7947
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7872
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774398624
|
1774398624
|
0
|
1774398624
|
1774398624
|
|
|
0
|
Edit
Delete
|
|
7948
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7873
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774398924
|
1774398924
|
0
|
1774398924
|
1774398924
|
|
|
0
|
Edit
Delete
|
|
7949
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7874
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774399224
|
1774399224
|
0
|
1774399224
|
1774399224
|
|
|
0
|
Edit
Delete
|
|
7950
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7875
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774399524
|
1774399524
|
0
|
1774399524
|
1774399524
|
|
|
0
|
Edit
Delete
|
|
7951
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7876
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774399824
|
1774399824
|
0
|
1774399824
|
1774399824
|
|
|
0
|
Edit
Delete
|
|
7952
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7877
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774400124
|
1774400124
|
0
|
1774400124
|
1774400124
|
|
|
0
|
Edit
Delete
|
|
7953
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7878
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774400424
|
1774400424
|
0
|
1774400424
|
1774400424
|
|
|
0
|
Edit
Delete
|
|
7954
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7879
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774400724
|
1774400724
|
0
|
1774400724
|
1774400724
|
|
|
0
|
Edit
Delete
|
|
7955
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7880
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774401024
|
1774401024
|
0
|
1774401024
|
1774401024
|
|
|
0
|
Edit
Delete
|
|
7956
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7881
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774401324
|
1774401324
|
0
|
1774401324
|
1774401324
|
|
|
0
|
Edit
Delete
|
|
7957
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7882
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774401624
|
1774401624
|
0
|
1774401624
|
1774401624
|
|
|
0
|
Edit
Delete
|
|
7958
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7883
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774401912
|
1774401912
|
0
|
1774401909
|
1774401912
|
|
|
0
|
Edit
Delete
|
|
7959
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7884
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774402210
|
1774402211
|
0
|
1774402209
|
1774402211
|
|
|
0
|
Edit
Delete
|
|
7960
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7885
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774402510
|
1774402511
|
0
|
1774402509
|
1774402511
|
|
|
0
|
Edit
Delete
|
|
7961
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7886
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774402810
|
1774402811
|
0
|
1774402809
|
1774402811
|
|
|
0
|
Edit
Delete
|
|
7962
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7887
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774403110
|
1774403111
|
0
|
1774403109
|
1774403111
|
|
|
0
|
Edit
Delete
|
|
7963
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7888
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774403457
|
1774403457
|
0
|
1774403455
|
1774403457
|
|
|
0
|
Edit
Delete
|
|
7964
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7889
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774403789
|
1774403789
|
0
|
1774403788
|
1774403789
|
|
|
0
|
Edit
Delete
|
|
7965
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7890
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774404030
|
1774404030
|
0
|
1774404028
|
1774404030
|
|
|
0
|
Edit
Delete
|
|
7966
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7891
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774404328
|
1774404329
|
0
|
1774404328
|
1774404329
|
|
|
0
|
Edit
Delete
|
|
7967
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7892
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774404628
|
1774404629
|
0
|
1774404628
|
1774404629
|
|
|
0
|
Edit
Delete
|
|
7968
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7893
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774404928
|
1774404929
|
0
|
1774404928
|
1774404929
|
|
|
0
|
Edit
Delete
|
|
7969
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7894
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774405228
|
1774405229
|
0
|
1774405228
|
1774405229
|
|
|
0
|
Edit
Delete
|
|
7970
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7895
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774405518
|
1774405518
|
0
|
1774405515
|
1774405518
|
|
|
0
|
Edit
Delete
|
|
7971
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7896
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774405816
|
1774405817
|
0
|
1774405815
|
1774405817
|
|
|
0
|
Edit
Delete
|
|
7972
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7897
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774406116
|
1774406117
|
0
|
1774406115
|
1774406117
|
|
|
0
|
Edit
Delete
|
|
7973
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7898
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774406416
|
1774406417
|
0
|
1774406415
|
1774406417
|
|
|
0
|
Edit
Delete
|
|
7974
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7899
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774406716
|
1774406717
|
0
|
1774406715
|
1774406717
|
|
|
0
|
Edit
Delete
|
|
7975
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7900
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774407016
|
1774407017
|
0
|
1774407015
|
1774407017
|
|
|
0
|
Edit
Delete
|
|
7976
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7901
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774407316
|
1774407317
|
0
|
1774407315
|
1774407317
|
|
|
0
|
Edit
Delete
|
|
7977
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7902
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774407617
|
1774407617
|
0
|
1774407615
|
1774407617
|
|
|
0
|
Edit
Delete
|
|
7978
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7903
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774407916
|
1774407917
|
0
|
1774407915
|
1774407917
|
|
|
0
|
Edit
Delete
|
|
7979
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7904
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774408216
|
1774408217
|
0
|
1774408215
|
1774408217
|
|
|
0
|
Edit
Delete
|
|
7980
|
fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试
|
6
|
5
|
health-check.yml
|
7905
|
-2
|
139
|
refs/heads/main
|
9f09902dce3537d952595fd6d33175b6f0c24c7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","after":"9f09902dce3537d952595fd6d33175b6f0c24c7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/81e883dfff9283af39b3dd2aa30e25ae2119e8f0...9f09902dce3537d952595fd6d33175b6f0c24c7e","commits":[{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},{"id":"8339466d837e734a5b9760c71def3fa95e07bb05","message":"fix: 后端 TypeScript 编译错误批量修复 (326→140)\n\n修复 186 个 tsc 编译错误,主要修复模式:\n- ZodEffects 上的 .partial()/.omit()/.extend() 改为手动定义 update schema\n- BaseService list 方法的 query 参数改为 Partial\u003cInput\u003e 兼容默认值\n- Record\u003cstring, unknown\u003e 属性访问添加 as 类型断言\n- Prisma JSON 字段赋值添加 as Prisma.InputJsonValue\n- docs 文件的 pathParams 从 ZodObject 改为手动数组\n- ApiEndpoint.responses 改为可选字段\n- 动态 import 模块的类型适配(tracing.ts)\n- $transaction 数组参数的 PrismaPromise 类型适配\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8339466d837e734a5b9760c71def3fa95e07bb05","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-24T14:16:49+08:00","added":[],"removed":[],"modified":["backend/scripts/verify-workflow-e2e.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/tracing.ts","backend/src/modules/ad-biddings/ad-bidding.controller.ts","backend/src/modules/ad-placement/ad-creative.docs.ts","backend/src/modules/ad-reports/ad-report.docs.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.controller.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/ai-agents/services/transformation-agent.service.ts","backend/src/modules/ai-copilot/ai-copilot.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-analytics/alliance-analytics.docs.ts","backend/src/modules/alliance-merchants/alliance-merchant.docs.ts","backend/src/modules/alliance-packages/alliance-package.docs.ts","backend/src/modules/alliance-partners/alliance-partner.docs.ts","backend/src/modules/alliance-products/alliance-product.docs.ts","backend/src/modules/alliance-promotions/alliance-promotion.docs.ts","backend/src/modules/alliance-settlements/alliance-settlement.docs.ts","backend/src/modules/analytics/analytics.controller.ts","backend/src/modules/analytics/analytics.docs.ts","backend/src/modules/approval-templates/approval-template.docs.ts","backend/src/modules/assembly/assembly.docs.ts","backend/src/modules/attribution/attribution.docs.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/auth/auth.docs.ts","backend/src/modules/campaign-drafts/campaign-draft.docs.ts","backend/src/modules/campaign-library/campaign-library.docs.ts","backend/src/modules/campaign-targets/campaign-target.docs.ts","backend/src/modules/campaign-tools/campaign-tool.docs.ts","backend/src/modules/campaign-use-case-templates/use-case-template.docs.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.docs.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/community-analytics/community-analytics.service.ts","backend/src/modules/community-bots/community-bot.docs.ts","backend/src/modules/community-fission/community-fission.docs.ts","backend/src/modules/community-gamification/community-gamification.docs.ts","backend/src/modules/community-gamification/community-gamification.service.ts","backend/src/modules/community-groups/community-group.contract.routes.ts","backend/src/modules/community-levels/community-level.docs.ts","backend/src/modules/community-materials/community-material.docs.ts","backend/src/modules/community-materials/community-material.service.ts","backend/src/modules/community-members/community-member.docs.ts","backend/src/modules/community-messages/community-message.docs.ts","backend/src/modules/community-tasks/community-task.docs.ts","backend/src/modules/content-analytics/content-analytics.docs.ts","backend/src/modules/content-categories/content-category.docs.ts","backend/src/modules/content-copyright/content-copyright.docs.ts","backend/src/modules/content-creation/content-creation.docs.ts","backend/src/modules/content-distribution/content-distribution.docs.ts","backend/src/modules/content-library/content-library.docs.ts","backend/src/modules/content-review/content-review.docs.ts","backend/src/modules/content-templates/content-template.docs.ts","backend/src/modules/contract-templates/contract-template.docs.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cpq/cpq.docs.ts","backend/src/modules/crm-activities/crm-activity.docs.ts","backend/src/modules/customer-analytics/customer-analytics.docs.ts","backend/src/modules/customer-balance/customer-balance.docs.ts","backend/src/modules/customer-journey/customer-journey.docs.ts","backend/src/modules/customer-profit/customer-profit.docs.ts","backend/src/modules/customers/customer-contact.service.ts","backend/src/modules/dashboard/dashboard.docs.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/disbursements/disbursement.docs.ts","backend/src/modules/email-marketing/index.ts","backend/src/modules/faults/fault.docs.ts","backend/src/modules/files/file.docs.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/financial-reports/financial-reports.docs.ts","backend/src/modules/fulfillment/fulfillment.docs.ts","backend/src/modules/fulfillment/fulfillment.service.ts","backend/src/modules/geo-keywords/geo-keywords.docs.ts","backend/src/modules/geo-pois/geo-poi.docs.ts","backend/src/modules/geo-reviews/geo-review.docs.ts","backend/src/modules/groupbuy-analytics/groupbuy-analytics.docs.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaigns.docs.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.docs.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.docs.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.docs.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.docs.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.docs.ts","backend/src/modules/groupbuy-products/groupbuy-product.docs.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.docs.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.docs.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.docs.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.docs.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/attendance/records/record.service.ts","backend/src/modules/hr/attendance/schedules/schedule.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/competency/competency.service.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/exams/exam.service.ts","backend/src/modules/im/im.docs.ts","backend/src/modules/inventory/inventory.docs.ts","backend/src/modules/journey-orchestration/journey-orchestration.docs.ts","backend/src/modules/knowledge-capture/knowledge-capture.docs.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.docs.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/knowledge/knowledge.docs.ts","backend/src/modules/landing-pages/index.ts","backend/src/modules/landing-pages/landing-page.docs.ts","backend/src/modules/lead-qualification/index.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.docs.ts","backend/src/modules/leads/lead-smart-assignment.service.ts","backend/src/modules/leads/lead.docs.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/livestream-analytics.docs.ts","backend/src/modules/livestream-gifts/livestream-gifts.docs.ts","backend/src/modules/livestream-interactions/livestream-interaction.docs.ts","backend/src/modules/livestream-products/livestream-product.docs.ts","backend/src/modules/livestream-rooms/livestream-room.docs.ts","backend/src/modules/livestream-schedules/livestream-schedules.docs.ts","backend/src/modules/livestream-scripts/livestream-script.docs.ts","backend/src/modules/livestream/livestream.docs.ts","backend/src/modules/location-assessments/location-assessment.docs.ts","backend/src/modules/maintenance/maintenance.docs.ts","backend/src/modules/marketing-automation/index.ts","backend/src/modules/marketing-calendar/marketing-calendar.docs.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.docs.ts","backend/src/modules/marketing-content/marketing-content.docs.ts","backend/src/modules/marketing-forms/index.ts","backend/src/modules/marketing-matrix/matrix.docs.ts","backend/src/modules/marketing-north-star/marketing-north-star.docs.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.docs.ts","backend/src/modules/marketing-tools/marketing-tools.docs.ts","backend/src/modules/marketing/budget.schema.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/marketing/marketing.docs.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/partner-customers/partner-customer.docs.ts","backend/src/modules/partners/partner.docs.ts","backend/src/modules/payment-analytics/payment-analytics.docs.ts","backend/src/modules/pm/pm.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/projects/project.docs.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime/message-template.schema.ts","backend/src/modules/reconciliation/reconciliation.docs.ts","backend/src/modules/renewal-tasks/renewal-task.docs.ts","backend/src/modules/revenue/revenue.docs.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/sales-dashboard/sales-dashboard.docs.ts","backend/src/modules/sample-requests/sample-request.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/search/search.docs.ts","backend/src/modules/serial-numbers/sn.docs.ts","backend/src/modules/service-dashboard/service-dashboard.docs.ts","backend/src/modules/service/service.docs.ts","backend/src/modules/shipments/shipment.service.ts","backend/src/modules/sms-marketing/sms-marketing.docs.ts","backend/src/modules/social-accounts/social-account.docs.ts","backend/src/modules/social-analytics/social-analytics.docs.ts","backend/src/modules/social-auto-replies/social-auto-replies.docs.ts","backend/src/modules/social-competitors/social-competitor.docs.ts","backend/src/modules/social-followers/social-follower.docs.ts","backend/src/modules/social-hot-topics/social-hot-topic.docs.ts","backend/src/modules/social-interactions/social-interactions.docs.ts","backend/src/modules/social-posts/social-post.docs.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/suppliers/supplier.docs.ts","backend/src/modules/supply-chain/supplier-management.docs.ts","backend/src/modules/swot-analyses/swot.docs.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.docs.ts","backend/src/modules/web-tracking/web-tracking.docs.ts","backend/src/modules/workflow-generator/workflow-generator.docs.ts","backend/src/shared/openapi/route-metadata.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/base.service.ts"]}],"total_commits":0,"head_commit":{"id":"9f09902dce3537d952595fd6d33175b6f0c24c7e","message":"fix: 8 Agent 并行治理 — tsc清零+安全修复+N+1优化+状态机边界测试\n\n- tsc 编译错误 140→0 清零(第3轮:validation.ts/process-adapter/HR模块/marketing-automation等)\n- 高危修复:Order isPaid 守卫增加 totalAmount\u003e0 防止负数绕过支付\n- Code Review 修复:community-material 批量操作补充 tenant_id 条件\n- 新增 6 模块 ~180 个状态机边界测试用例(lead/opportunity/quote/contract/order/ticket)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9f09902dce3537d952595fd6d33175b6f0c24c7e","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-24T18:02:32+08:00","added":["backend/src/modules/contracts/__tests__/contract.edge-cases.test.ts","backend/src/modules/leads/__tests__/lead.edge-cases.test.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/orders/__tests__/order.edge-cases.test.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/tickets/__tests__/ticket.edge-cases.test.ts"],"removed":[],"modified":["backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.ts","backend/src/modules/hr/benefits/plans/plan.service.ts","backend/src/modules/hr/org-chart.routes.ts","backend/src/modules/hr/payroll/payroll.service.ts","backend/src/modules/hr/training/certificates/certificate.controller.ts","backend/src/modules/hr/training/courses/course.service.ts","backend/src/modules/hr/training/plans/plan.service.ts","backend/src/modules/knowledge/knowledge-crud.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/leads/lead-ai-scoring.service.ts","backend/src/modules/livestream-gifts/livestream-gifts.controller.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.ts","backend/src/modules/marketing/marketing.controller.ts","backend/src/modules/partners/partner.controller.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.docs.ts","backend/src/modules/scheduled-jobs/scheduled-jobs.service.ts","backend/src/modules/social-competitors/social-competitor.service.ts","backend/src/modules/store-inventory/store-inventory.service.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/store-staff/store-staff.service.ts","backend/src/modules/swot-analyses/swot.controller.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/shared/process-core/process-adapter.ts","backend/src/shared/services/cache.service.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/utils/pagination.ts","backend/src/shared/utils/validation.ts","backend/tsconfig.json"]},"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":1845854,"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-24T12: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
|
1774408516
|
1774408517
|
0
|
1774408515
|
1774408517
|
|
|
0
|
Edit
Delete
|
|
7260
|
fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御
|
6
|
5
|
ci.yml
|
7186
|
5
|
0
|
refs/heads/main
|
df7b6f46170cb46db4771dd1e07991b0b13d90a0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"80c2bdb2f93a19aa53d16ded06387b70c6084bf8","after":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/80c2bdb2f93a19aa53d16ded06387b70c6084bf8...df7b6f46170cb46db4771dd1e07991b0b13d90a0","commits":[{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue"]}],"total_commits":0,"head_commit":{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.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":1919904,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:43:43+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
|
54
|
1774223516
|
1774223547
|
0
|
1774223516
|
1774223971
|
group: ${{ github.workflow }}-${{ github.ref }}
ca group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
7261
|
fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御
|
6
|
5
|
deploy.yml
|
7187
|
5
|
0
|
refs/heads/main
|
df7b6f46170cb46db4771dd1e07991b0b13d90a0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"80c2bdb2f93a19aa53d16ded06387b70c6084bf8","after":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/80c2bdb2f93a19aa53d16ded06387b70c6084bf8...df7b6f46170cb46db4771dd1e07991b0b13d90a0","commits":[{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue"]}],"total_commits":0,"head_commit":{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.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":1919904,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:43:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
22
|
1774223547
|
1774223570
|
0
|
1774223517
|
1774223984
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
7262
|
fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御
|
6
|
5
|
e2e-tests.yml
|
7188
|
5
|
0
|
refs/heads/main
|
df7b6f46170cb46db4771dd1e07991b0b13d90a0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"80c2bdb2f93a19aa53d16ded06387b70c6084bf8","after":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/80c2bdb2f93a19aa53d16ded06387b70c6084bf8...df7b6f46170cb46db4771dd1e07991b0b13d90a0","commits":[{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue"]}],"total_commits":0,"head_commit":{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.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":1919904,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:43:43+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
|
1774223571
|
1774223769
|
0
|
1774223517
|
1774223907
|
|
|
0
|
Edit
Delete
|
|
7263
|
fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御
|
6
|
5
|
integration-test.yml
|
7189
|
5
|
0
|
refs/heads/main
|
df7b6f46170cb46db4771dd1e07991b0b13d90a0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"80c2bdb2f93a19aa53d16ded06387b70c6084bf8","after":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/80c2bdb2f93a19aa53d16ded06387b70c6084bf8...df7b6f46170cb46db4771dd1e07991b0b13d90a0","commits":[{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue"]}],"total_commits":0,"head_commit":{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.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":1919904,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:43:43+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
|
1
|
20
|
1774223769
|
1774223986
|
0
|
1774223518
|
1774223986
|
group: integration-${{ github.workflow }}-${{ gith group: integration-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
integration-integration-test.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
7264
|
fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御
|
6
|
5
|
quality-check.yml
|
7190
|
5
|
0
|
refs/heads/main
|
df7b6f46170cb46db4771dd1e07991b0b13d90a0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"80c2bdb2f93a19aa53d16ded06387b70c6084bf8","after":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/80c2bdb2f93a19aa53d16ded06387b70c6084bf8...df7b6f46170cb46db4771dd1e07991b0b13d90a0","commits":[{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue"]}],"total_commits":0,"head_commit":{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.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":1919904,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:43:43+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
|
16
|
1774223784
|
1774223857
|
0
|
1774223518
|
1774223911
|
group: quality-${{ github.workflow }}-${{ github.r group: quality-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
quality-quality-check.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
7265
|
fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御
|
6
|
5
|
test.yml
|
7191
|
5
|
0
|
refs/heads/main
|
df7b6f46170cb46db4771dd1e07991b0b13d90a0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"80c2bdb2f93a19aa53d16ded06387b70c6084bf8","after":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/80c2bdb2f93a19aa53d16ded06387b70c6084bf8...df7b6f46170cb46db4771dd1e07991b0b13d90a0","commits":[{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue"]}],"total_commits":0,"head_commit":{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.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":1919904,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:43:43+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
|
42
|
1774223857
|
1774223888
|
0
|
1774223519
|
1774223969
|
group: test-${{ github.workflow }}-${{ github.ref group: test-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-test.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
7266
|
fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御
|
6
|
5
|
health-check.yml
|
7192
|
-2
|
104
|
refs/heads/main
|
df7b6f46170cb46db4771dd1e07991b0b13d90a0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"80c2bdb2f93a19aa53d16ded06387b70c6084bf8","after":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/80c2bdb2f93a19aa53d16ded06387b70c6084bf8...df7b6f46170cb46db4771dd1e07991b0b13d90a0","commits":[{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue"]}],"total_commits":0,"head_commit":{"id":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","message":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御\n\n1. approval-configs 提交数据修复:\n - 删除冗余 objectType(后端期望 entityType)\n - 删除冗余 nodes(后端期望 steps)\n\n2. geo-keywords 后端缺失路由防御(7 个):\n - 批量删除/排名检查/导出等按钮禁用 + warning 提示\n - 保留 API 方法定义供后端实现后使用\n\n3. groupbuy-participants 后端缺失路由防御(8 个):\n - GET/:id 不存在 → 查看/编辑改为 warning 提示\n - stats 接口 catch 兜底返回空数据\n\n4. 确认无需修改的模块:\n - invoice-requests 复用 invoicesApi:设计如此(同一后端模块)\n - video-publishing 复用 socialPostApi:设计如此(视频子集视图)\n - outbound 复用 shipments 路由:后端已覆盖所有端点\n - qr-codes 使用 campaignsApi:后端缺失 qr-codes 路由,前端无法单独修复\n\n验证:Vite 构建通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df7b6f46170cb46db4771dd1e07991b0b13d90a0","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-23T07:51:53+08:00","added":[],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.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":1919904,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:43:43+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
|
1774223899
|
1774223899
|
0
|
1774223740
|
1774223899
|
|
|
0
|
Edit
Delete
|
|
7267
|
fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御
|
6
|
5
|
test-report.yml
|
7193
|
5
|
0
|
refs/heads/main
|
df7b6f46170cb46db4771dd1e07991b0b13d90a0
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-03-23T07:51:53+08:00","updated_at":"2026-03-23T07:51:53+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":7262,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7262","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7262","display_title":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7188,"head_sha":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","head_branch":"main","status":"completed","actor":{"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"},"trigger_actor":{"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"},"repository":{"id":6,"owner":{"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"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1919936,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:52:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"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":[]},"conclusion":"failure","started_at":"2026-03-23T07:52:51+08:00","completed_at":"2026-03-23T07:56:09+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1919936,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:52:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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"}}...
|
workflow_run
|
2
|
14
|
1774223901
|
1774223904
|
0
|
1774223769
|
1774223941
|
|
|
0
|
Edit
Delete
|
|
7268
|
fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御
|
6
|
5
|
test-report.yml
|
7194
|
5
|
0
|
refs/heads/main
|
df7b6f46170cb46db4771dd1e07991b0b13d90a0
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test.yml","name":"Test Suite","path":".github/workflows/test.yml","state":"active","created_at":"2026-03-23T07:51:53+08:00","updated_at":"2026-03-23T07:51:53+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":7265,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7265","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7265","display_title":"fix: P2 交互问题修复 — API 冗余字段 + 后端缺失路由防御","path":"test.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7191,"head_sha":"df7b6f46170cb46db4771dd1e07991b0b13d90a0","head_branch":"main","status":"completed","actor":{"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"},"trigger_actor":{"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"},"repository":{"id":6,"owner":{"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"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1919936,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:52:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"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":[]},"conclusion":"failure","started_at":"2026-03-23T07:57:37+08:00","completed_at":"2026-03-23T07:58:08+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1919936,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:52:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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"}}...
|
workflow_run
|
2
|
14
|
1774223911
|
1774223914
|
0
|
1774223889
|
1774223950
|
|
|
0
|
Edit
Delete
|