|
10486
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10410
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775085019
|
1775085020
|
0
|
1775085018
|
1775085020
|
|
|
0
|
Edit
Delete
|
|
10487
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10411
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775085319
|
1775085320
|
0
|
1775085318
|
1775085320
|
|
|
0
|
Edit
Delete
|
|
10488
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10412
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775085619
|
1775085620
|
0
|
1775085618
|
1775085620
|
|
|
0
|
Edit
Delete
|
|
10489
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10413
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775085919
|
1775085920
|
0
|
1775085918
|
1775085920
|
|
|
0
|
Edit
Delete
|
|
10490
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10414
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775086219
|
1775086220
|
0
|
1775086218
|
1775086220
|
|
|
0
|
Edit
Delete
|
|
10491
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10415
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775086519
|
1775086520
|
0
|
1775086518
|
1775086520
|
|
|
0
|
Edit
Delete
|
|
10492
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10416
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775086819
|
1775086820
|
0
|
1775086818
|
1775086820
|
|
|
0
|
Edit
Delete
|
|
10493
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10417
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775087119
|
1775087120
|
0
|
1775087118
|
1775087120
|
|
|
0
|
Edit
Delete
|
|
10494
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10418
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775087419
|
1775087420
|
0
|
1775087418
|
1775087420
|
|
|
0
|
Edit
Delete
|
|
10495
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10419
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775087719
|
1775087720
|
0
|
1775087718
|
1775087720
|
|
|
0
|
Edit
Delete
|
|
10496
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10420
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775088019
|
1775088020
|
0
|
1775088018
|
1775088020
|
|
|
0
|
Edit
Delete
|
|
10497
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
e2e-tests.yml
|
10421
|
-2
|
249
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775088021
|
1775088732
|
0
|
1775088018
|
1775088828
|
|
|
0
|
Edit
Delete
|
|
10498
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10422
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775088733
|
1775088734
|
0
|
1775088318
|
1775088734
|
|
|
0
|
Edit
Delete
|
|
10499
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10423
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775088735
|
1775088736
|
0
|
1775088618
|
1775088736
|
|
|
0
|
Edit
Delete
|
|
10500
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10424
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775088918
|
1775088919
|
0
|
1775088918
|
1775088919
|
|
|
0
|
Edit
Delete
|
|
10501
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10425
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775089218
|
1775089219
|
0
|
1775089218
|
1775089219
|
|
|
0
|
Edit
Delete
|
|
10502
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10426
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775089518
|
1775089519
|
0
|
1775089518
|
1775089519
|
|
|
0
|
Edit
Delete
|
|
10503
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10427
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775089818
|
1775089819
|
0
|
1775089818
|
1775089819
|
|
|
0
|
Edit
Delete
|
|
10504
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10428
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775090118
|
1775090119
|
0
|
1775090118
|
1775090119
|
|
|
0
|
Edit
Delete
|
|
10505
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10429
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775090418
|
1775090419
|
0
|
1775090418
|
1775090419
|
|
|
0
|
Edit
Delete
|
|
10506
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10430
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775090718
|
1775090719
|
0
|
1775090718
|
1775090719
|
|
|
0
|
Edit
Delete
|
|
10507
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10431
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775091018
|
1775091019
|
0
|
1775091018
|
1775091019
|
|
|
0
|
Edit
Delete
|
|
10508
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10432
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775091318
|
1775091319
|
0
|
1775091318
|
1775091319
|
|
|
0
|
Edit
Delete
|
|
10509
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10433
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775091618
|
1775091619
|
0
|
1775091618
|
1775091619
|
|
|
0
|
Edit
Delete
|
|
10510
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10434
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775091918
|
1775091919
|
0
|
1775091918
|
1775091919
|
|
|
0
|
Edit
Delete
|
|
10511
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10435
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775092218
|
1775092219
|
0
|
1775092218
|
1775092219
|
|
|
0
|
Edit
Delete
|
|
10512
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10436
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775092518
|
1775092519
|
0
|
1775092518
|
1775092519
|
|
|
0
|
Edit
Delete
|
|
10513
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10437
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775092818
|
1775092819
|
0
|
1775092818
|
1775092819
|
|
|
0
|
Edit
Delete
|
|
10514
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10438
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775093118
|
1775093119
|
0
|
1775093118
|
1775093119
|
|
|
0
|
Edit
Delete
|
|
10515
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10439
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775093418
|
1775093419
|
0
|
1775093418
|
1775093419
|
|
|
0
|
Edit
Delete
|
|
10516
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10440
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775093718
|
1775093719
|
0
|
1775093718
|
1775093719
|
|
|
0
|
Edit
Delete
|
|
10517
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10441
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775094018
|
1775094019
|
0
|
1775094018
|
1775094019
|
|
|
0
|
Edit
Delete
|
|
10518
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10442
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775094318
|
1775094319
|
0
|
1775094318
|
1775094319
|
|
|
0
|
Edit
Delete
|
|
10519
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10443
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775094618
|
1775094619
|
0
|
1775094618
|
1775094619
|
|
|
0
|
Edit
Delete
|
|
10520
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10444
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775094918
|
1775094919
|
0
|
1775094918
|
1775094919
|
|
|
0
|
Edit
Delete
|
|
10521
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10445
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775095218
|
1775095219
|
0
|
1775095218
|
1775095219
|
|
|
0
|
Edit
Delete
|
|
10522
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10446
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775095518
|
1775095519
|
0
|
1775095518
|
1775095519
|
|
|
0
|
Edit
Delete
|
|
10523
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10447
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775095818
|
1775095819
|
0
|
1775095818
|
1775095819
|
|
|
0
|
Edit
Delete
|
|
10524
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10448
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775096118
|
1775096119
|
0
|
1775096118
|
1775096119
|
|
|
0
|
Edit
Delete
|
|
10525
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10449
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775096418
|
1775096419
|
0
|
1775096418
|
1775096419
|
|
|
0
|
Edit
Delete
|
|
10526
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10450
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775096718
|
1775096719
|
0
|
1775096718
|
1775096719
|
|
|
0
|
Edit
Delete
|
|
10527
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10451
|
-2
|
250
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"46635b50050ba09e31518824f56b1e2176e7b0b7","after":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/46635b50050ba09e31518824f56b1e2176e7b0b7...7212eb23c82b2ecae9ea1f22fa928fc6382f842d","commits":[{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},{"id":"f94b12e56bac07b085d726a5205b134f3b46d56c","message":"fix: schema字段补齐 + 枚举审计补全 + leads N+1修复 + API测试扩展\n\n- 补齐 alliance-agreements/coupons/campaigns、community-tasks/bots、groupbuy-promotions 的 Zod schema 缺失字段\n- statuses.ts 新增审计补齐的枚举定义(ABM/approval/AR-ledger 等)\n- leads 列表去除 AI enrichment 避免 N+1 性能瓶颈\n- dashboard-cache 增加 destroy() 防止定时器泄漏,main.ts 注册关闭钩子\n- 扩展 assets/auth/financial-reports API 测试用例\n- 刷新 7 份审计报告\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f94b12e56bac07b085d726a5205b134f3b46d56c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:57:16+08:00","added":[],"removed":[],"modified":["backend/src/main.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/community-bots/community-bot.schema.ts","backend/src/modules/community-tasks/community-task.schema.ts","backend/src/modules/dashboard/dashboard-cache.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/assets.test.ts","backend/tests/api/auth.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/module-catalog.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"83dba3313659e6cae54f44e9b5f92ed76cdc6930","message":"fix(outbox): move publishEvent outside $transaction for 20 B-class calls\n\nEnsure Kafka events are only published after transaction commits\nsuccessfully, preventing phantom events on rollback.\n\nModules: customer-balance(6), rma(3), targets(2), swot(2), devices(1),\nproducts(1), renewals(1), ar-ledger(1), commission-settlement(1),\nserial-numbers(1), lead-collector(1 - already A-class on review)\n\nGate: tsc 0 | 408 files 6410 tests 100%\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/83dba3313659e6cae54f44e9b5f92ed76cdc6930","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:50:02+08:00","added":[],"removed":[],"modified":["backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/targets/target.service.ts"]},{"id":"030461be827686bdc356980b5b9194d818d792b9","message":"Harden deployment checks and expand API coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/030461be827686bdc356980b5b9194d818d792b9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:41:49+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/tests/api/module-catalog.ts","backend/tests/api/web-tracking.test.ts","frontend/src/api/modules/supplier-management.ts","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"7502b39b876a708302cebd203aa34871ea2a5e1b","message":"fix(docker): increase Node memory for frontend Vite build in Docker\n\nLarge project (735 JS chunks) needs more heap to avoid OOM during\nproduction build inside Alpine container.\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/7502b39b876a708302cebd203aa34871ea2a5e1b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:37:34+08:00","added":[],"removed":[],"modified":["frontend/Dockerfile"]}],"total_commits":0,"head_commit":{"id":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","message":"feat(statuses): add 61 missing enum definitions to statuses.ts\n\nCentralize status enums that were previously only hardcoded in frontend\nviews. Reduces enum-consistency audit WARNING from 77 to 14 (-82%).\n\nCovers: assembly, asset, invoice, treasury, marketing, fulfillment,\npredictive-analytics, journey-orchestration, and 53 other modules.\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/7212eb23c82b2ecae9ea1f22fa928fc6382f842d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-02T01:59:43+08:00","added":[],"removed":[],"modified":["backend/src/shared/constants/statuses.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":3553340,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-31T19:44:35+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
|
1775097018
|
1775097019
|
0
|
1775097018
|
1775097019
|
|
|
0
|
Edit
Delete
|
|
4263
|
feat: Add finance OS AI views and knowledge base c feat: Add finance OS AI views and knowledge base components...
|
6
|
5
|
ci.yml
|
4208
|
5
|
0
|
refs/heads/main
|
a827624730a039637887a7c3f1fb7f5c813cb3ec
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c8076632765b6782be30f75613b7ab8e602662f4","after":"a827624730a039637887a7c3f1fb7f5c813cb3ec","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c8076632765b6782be30f75613b7ab8e602662f4...a827624730a039637887a7c3f1fb7f5c813cb3ec","commits":[{"id":"a827624730a039637887a7c3f1fb7f5c813cb3ec","message":"feat: Add finance OS AI views and knowledge base components\n\n- Add finance AI views (AutoCollectionEngine, AutoCreditAdjustment, DefaultProbabilityModel, ROIEvaluation)\n- Add cash management views (AccountManagement, CashHealth, DailySettlement, Forecast3090, FundPool, FundScheduling, PaymentRequests)\n- Add profit analysis views (AssetDepreciation, CityProfit, EmotionROI, IOCurve, PaybackPeriod, ProductProfit, ProfitEngine)\n- Add risk control views (AbnormalProfit, CreditLimit, CreditScore, FreezeMechanism, OverdueForecast, RiskControl, TaxRisk)\n- Add knowledge base components (KnowledgeCapture, KnowledgeFeedback)\n- Update video calls module with improved form and list UI\n- Refactor channel integrations, opportunities, purchase orders, quotes API\n- Update approval governance and route contract audit reports\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a827624730a039637887a7c3f1fb7f5c813cb3ec","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-10T10:11:48+08:00","added":[".claude/worktrees/exciting-mahavira","frontend/src/views/finance-os/ai/AutoCollectionEngine.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/FinanceAI.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/finance-os/cash/AccountManagement.vue","frontend/src/views/finance-os/cash/CashHealth.vue","frontend/src/views/finance-os/cash/DailySettlement.vue","frontend/src/views/finance-os/cash/Forecast3090.vue","frontend/src/views/finance-os/cash/FundPool.vue","frontend/src/views/finance-os/cash/FundScheduling.vue","frontend/src/views/finance-os/cash/PaymentRequests.vue","frontend/src/views/finance-os/profit/AssetDepreciation.vue","frontend/src/views/finance-os/profit/CityProfit.vue","frontend/src/views/finance-os/profit/EmotionROI.vue","frontend/src/views/finance-os/profit/IOCurve.vue","frontend/src/views/finance-os/profit/PaybackPeriod.vue","frontend/src/views/finance-os/profit/ProductProfit.vue","frontend/src/views/finance-os/profit/ProfitEngine.vue","frontend/src/views/finance-os/risk/AbnormalProfit.vue","frontend/src/views/finance-os/risk/CreditLimit.vue","frontend/src/views/finance-os/risk/CreditScore.vue","frontend/src/views/finance-os/risk/FreezeMechanism.vue","frontend/src/views/finance-os/risk/OverdueForecast.vue","frontend/src/views/finance-os/risk/RiskControl.vue","frontend/src/views/finance-os/risk/TaxRisk.vue","frontend/src/views/knowledge-base/KnowledgeCapture.vue","frontend/src/views/knowledge-base/KnowledgeFeedback.vue"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["backend/src/main.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/approvals/approval.service.test.ts","backend/src/modules/approvals/approval.service.ts","backend/src/modules/bom/bom.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/video-calls/video-call.routes.ts","e2e/playwright-report/index.html","frontend/src/api/modules/channel-integrations.ts","frontend/src/api/modules/opportunities.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/video-calls.ts","frontend/src/views/ai-agents/Metrics.vue","frontend/src/views/finance-os/ai/AutoFundScheduling.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/cash/CashControlTower.vue","frontend/src/views/finance-os/expense/CostAnomaly.vue","frontend/src/views/finance-os/expense/CostCenter.vue","frontend/src/views/finance-os/expense/ExpenseApprovalFlow.vue","frontend/src/views/finance-os/expense/NodeCost.vue","frontend/src/views/finance-os/expense/ProjectCost.vue","frontend/src/views/finance-os/revenue/AutoCollectionCenter.vue","frontend/src/views/finance-os/revenue/PriceTypes.vue","frontend/src/views/finance-os/revenue/RecognitionRules.vue","frontend/src/views/video-calls/Form.vue","frontend/src/views/video-calls/Index.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md"]},{"id":"280bb3927069d31d0dfeb19caf98ce774dd2651d","message":"feat(supply-chain): finish wave 1, 4, 5, 6 with complete type safety\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/280bb3927069d31d0dfeb19caf98ce774dd2651d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-09T15:25:41+08:00","added":["backend/src/modules/purchase-orders/purchase-order.controller.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.routes.ts","backend/src/modules/purchase-orders/purchase-order.schema.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/purchase-orders/Detail.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/purchase-orders/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/video-calls/Form.vue","frontend/src/views/video-calls/Index.vue"],"removed":[],"modified":["backend/src/modules/supply-chain/purchase-order.service.ts","backend/src/routes/register-domain-routes.ts","frontend/src/api/modules/video-calls.ts","frontend/src/router/index.ts","frontend/src/views/channel-integrations/Form.vue","frontend/src/views/channel-integrations/Index.vue"]}],"total_commits":0,"head_commit":{"id":"a827624730a039637887a7c3f1fb7f5c813cb3ec","message":"feat: Add finance OS AI views and knowledge base components\n\n- Add finance AI views (AutoCollectionEngine, AutoCreditAdjustment, DefaultProbabilityModel, ROIEvaluation)\n- Add cash management views (AccountManagement, CashHealth, DailySettlement, Forecast3090, FundPool, FundScheduling, PaymentRequests)\n- Add profit analysis views (AssetDepreciation, CityProfit, EmotionROI, IOCurve, PaybackPeriod, ProductProfit, ProfitEngine)\n- Add risk control views (AbnormalProfit, CreditLimit, CreditScore, FreezeMechanism, OverdueForecast, RiskControl, TaxRisk)\n- Add knowledge base components (KnowledgeCapture, KnowledgeFeedback)\n- Update video calls module with improved form and list UI\n- Refactor channel integrations, opportunities, purchase orders, quotes API\n- Update approval governance and route contract audit reports\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a827624730a039637887a7c3f1fb7f5c813cb3ec","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-10T10:11:48+08:00","added":[".claude/worktrees/exciting-mahavira","frontend/src/views/finance-os/ai/AutoCollectionEngine.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/FinanceAI.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/finance-os/cash/AccountManagement.vue","frontend/src/views/finance-os/cash/CashHealth.vue","frontend/src/views/finance-os/cash/DailySettlement.vue","frontend/src/views/finance-os/cash/Forecast3090.vue","frontend/src/views/finance-os/cash/FundPool.vue","frontend/src/views/finance-os/cash/FundScheduling.vue","frontend/src/views/finance-os/cash/PaymentRequests.vue","frontend/src/views/finance-os/profit/AssetDepreciation.vue","frontend/src/views/finance-os/profit/CityProfit.vue","frontend/src/views/finance-os/profit/EmotionROI.vue","frontend/src/views/finance-os/profit/IOCurve.vue","frontend/src/views/finance-os/profit/PaybackPeriod.vue","frontend/src/views/finance-os/profit/ProductProfit.vue","frontend/src/views/finance-os/profit/ProfitEngine.vue","frontend/src/views/finance-os/risk/AbnormalProfit.vue","frontend/src/views/finance-os/risk/CreditLimit.vue","frontend/src/views/finance-os/risk/CreditScore.vue","frontend/src/views/finance-os/risk/FreezeMechanism.vue","frontend/src/views/finance-os/risk/OverdueForecast.vue","frontend/src/views/finance-os/risk/RiskControl.vue","frontend/src/views/finance-os/risk/TaxRisk.vue","frontend/src/views/knowledge-base/KnowledgeCapture.vue","frontend/src/views/knowledge-base/KnowledgeFeedback.vue"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["backend/src/main.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/approvals/approval.service.test.ts","backend/src/modules/approvals/approval.service.ts","backend/src/modules/bom/bom.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/video-calls/video-call.routes.ts","e2e/playwright-report/index.html","frontend/src/api/modules/channel-integrations.ts","frontend/src/api/modules/opportunities.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/video-calls.ts","frontend/src/views/ai-agents/Metrics.vue","frontend/src/views/finance-os/ai/AutoFundScheduling.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/cash/CashControlTower.vue","frontend/src/views/finance-os/expense/CostAnomaly.vue","frontend/src/views/finance-os/expense/CostCenter.vue","frontend/src/views/finance-os/expense/ExpenseApprovalFlow.vue","frontend/src/views/finance-os/expense/NodeCost.vue","frontend/src/views/finance-os/expense/ProjectCost.vue","frontend/src/views/finance-os/revenue/AutoCollectionCenter.vue","frontend/src/views/finance-os/revenue/PriceTypes.vue","frontend/src/views/finance-os/revenue/RecognitionRules.vue","frontend/src/views/video-calls/Form.vue","frontend/src/views/video-calls/Index.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":1161980,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-10T10:10:32+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
24
|
1773108718
|
1773108746
|
0
|
1773108717
|
1773108746
|
NULL
|
|
0
|
Edit
Delete
|
|
4264
|
feat: Add finance OS AI views and knowledge base c feat: Add finance OS AI views and knowledge base components...
|
6
|
5
|
health-check.yml
|
4209
|
-2
|
55
|
refs/heads/main
|
a827624730a039637887a7c3f1fb7f5c813cb3ec
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c8076632765b6782be30f75613b7ab8e602662f4","after":"a827624730a039637887a7c3f1fb7f5c813cb3ec","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c8076632765b6782be30f75613b7ab8e602662f4...a827624730a039637887a7c3f1fb7f5c813cb3ec","commits":[{"id":"a827624730a039637887a7c3f1fb7f5c813cb3ec","message":"feat: Add finance OS AI views and knowledge base components\n\n- Add finance AI views (AutoCollectionEngine, AutoCreditAdjustment, DefaultProbabilityModel, ROIEvaluation)\n- Add cash management views (AccountManagement, CashHealth, DailySettlement, Forecast3090, FundPool, FundScheduling, PaymentRequests)\n- Add profit analysis views (AssetDepreciation, CityProfit, EmotionROI, IOCurve, PaybackPeriod, ProductProfit, ProfitEngine)\n- Add risk control views (AbnormalProfit, CreditLimit, CreditScore, FreezeMechanism, OverdueForecast, RiskControl, TaxRisk)\n- Add knowledge base components (KnowledgeCapture, KnowledgeFeedback)\n- Update video calls module with improved form and list UI\n- Refactor channel integrations, opportunities, purchase orders, quotes API\n- Update approval governance and route contract audit reports\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a827624730a039637887a7c3f1fb7f5c813cb3ec","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-10T10:11:48+08:00","added":[".claude/worktrees/exciting-mahavira","frontend/src/views/finance-os/ai/AutoCollectionEngine.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/FinanceAI.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/finance-os/cash/AccountManagement.vue","frontend/src/views/finance-os/cash/CashHealth.vue","frontend/src/views/finance-os/cash/DailySettlement.vue","frontend/src/views/finance-os/cash/Forecast3090.vue","frontend/src/views/finance-os/cash/FundPool.vue","frontend/src/views/finance-os/cash/FundScheduling.vue","frontend/src/views/finance-os/cash/PaymentRequests.vue","frontend/src/views/finance-os/profit/AssetDepreciation.vue","frontend/src/views/finance-os/profit/CityProfit.vue","frontend/src/views/finance-os/profit/EmotionROI.vue","frontend/src/views/finance-os/profit/IOCurve.vue","frontend/src/views/finance-os/profit/PaybackPeriod.vue","frontend/src/views/finance-os/profit/ProductProfit.vue","frontend/src/views/finance-os/profit/ProfitEngine.vue","frontend/src/views/finance-os/risk/AbnormalProfit.vue","frontend/src/views/finance-os/risk/CreditLimit.vue","frontend/src/views/finance-os/risk/CreditScore.vue","frontend/src/views/finance-os/risk/FreezeMechanism.vue","frontend/src/views/finance-os/risk/OverdueForecast.vue","frontend/src/views/finance-os/risk/RiskControl.vue","frontend/src/views/finance-os/risk/TaxRisk.vue","frontend/src/views/knowledge-base/KnowledgeCapture.vue","frontend/src/views/knowledge-base/KnowledgeFeedback.vue"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["backend/src/main.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/approvals/approval.service.test.ts","backend/src/modules/approvals/approval.service.ts","backend/src/modules/bom/bom.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/video-calls/video-call.routes.ts","e2e/playwright-report/index.html","frontend/src/api/modules/channel-integrations.ts","frontend/src/api/modules/opportunities.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/video-calls.ts","frontend/src/views/ai-agents/Metrics.vue","frontend/src/views/finance-os/ai/AutoFundScheduling.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/cash/CashControlTower.vue","frontend/src/views/finance-os/expense/CostAnomaly.vue","frontend/src/views/finance-os/expense/CostCenter.vue","frontend/src/views/finance-os/expense/ExpenseApprovalFlow.vue","frontend/src/views/finance-os/expense/NodeCost.vue","frontend/src/views/finance-os/expense/ProjectCost.vue","frontend/src/views/finance-os/revenue/AutoCollectionCenter.vue","frontend/src/views/finance-os/revenue/PriceTypes.vue","frontend/src/views/finance-os/revenue/RecognitionRules.vue","frontend/src/views/video-calls/Form.vue","frontend/src/views/video-calls/Index.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md"]},{"id":"280bb3927069d31d0dfeb19caf98ce774dd2651d","message":"feat(supply-chain): finish wave 1, 4, 5, 6 with complete type safety\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/280bb3927069d31d0dfeb19caf98ce774dd2651d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-09T15:25:41+08:00","added":["backend/src/modules/purchase-orders/purchase-order.controller.ts","backend/src/modules/purchase-orders/purchase-order.docs.ts","backend/src/modules/purchase-orders/purchase-order.routes.ts","backend/src/modules/purchase-orders/purchase-order.schema.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/purchase-orders/Detail.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/purchase-orders/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/video-calls/Form.vue","frontend/src/views/video-calls/Index.vue"],"removed":[],"modified":["backend/src/modules/supply-chain/purchase-order.service.ts","backend/src/routes/register-domain-routes.ts","frontend/src/api/modules/video-calls.ts","frontend/src/router/index.ts","frontend/src/views/channel-integrations/Form.vue","frontend/src/views/channel-integrations/Index.vue"]}],"total_commits":0,"head_commit":{"id":"a827624730a039637887a7c3f1fb7f5c813cb3ec","message":"feat: Add finance OS AI views and knowledge base components\n\n- Add finance AI views (AutoCollectionEngine, AutoCreditAdjustment, DefaultProbabilityModel, ROIEvaluation)\n- Add cash management views (AccountManagement, CashHealth, DailySettlement, Forecast3090, FundPool, FundScheduling, PaymentRequests)\n- Add profit analysis views (AssetDepreciation, CityProfit, EmotionROI, IOCurve, PaybackPeriod, ProductProfit, ProfitEngine)\n- Add risk control views (AbnormalProfit, CreditLimit, CreditScore, FreezeMechanism, OverdueForecast, RiskControl, TaxRisk)\n- Add knowledge base components (KnowledgeCapture, KnowledgeFeedback)\n- Update video calls module with improved form and list UI\n- Refactor channel integrations, opportunities, purchase orders, quotes API\n- Update approval governance and route contract audit reports\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a827624730a039637887a7c3f1fb7f5c813cb3ec","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-10T10:11:48+08:00","added":[".claude/worktrees/exciting-mahavira","frontend/src/views/finance-os/ai/AutoCollectionEngine.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/FinanceAI.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/finance-os/cash/AccountManagement.vue","frontend/src/views/finance-os/cash/CashHealth.vue","frontend/src/views/finance-os/cash/DailySettlement.vue","frontend/src/views/finance-os/cash/Forecast3090.vue","frontend/src/views/finance-os/cash/FundPool.vue","frontend/src/views/finance-os/cash/FundScheduling.vue","frontend/src/views/finance-os/cash/PaymentRequests.vue","frontend/src/views/finance-os/profit/AssetDepreciation.vue","frontend/src/views/finance-os/profit/CityProfit.vue","frontend/src/views/finance-os/profit/EmotionROI.vue","frontend/src/views/finance-os/profit/IOCurve.vue","frontend/src/views/finance-os/profit/PaybackPeriod.vue","frontend/src/views/finance-os/profit/ProductProfit.vue","frontend/src/views/finance-os/profit/ProfitEngine.vue","frontend/src/views/finance-os/risk/AbnormalProfit.vue","frontend/src/views/finance-os/risk/CreditLimit.vue","frontend/src/views/finance-os/risk/CreditScore.vue","frontend/src/views/finance-os/risk/FreezeMechanism.vue","frontend/src/views/finance-os/risk/OverdueForecast.vue","frontend/src/views/finance-os/risk/RiskControl.vue","frontend/src/views/finance-os/risk/TaxRisk.vue","frontend/src/views/knowledge-base/KnowledgeCapture.vue","frontend/src/views/knowledge-base/KnowledgeFeedback.vue"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["backend/src/main.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/approvals/approval.service.test.ts","backend/src/modules/approvals/approval.service.ts","backend/src/modules/bom/bom.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/video-calls/video-call.routes.ts","e2e/playwright-report/index.html","frontend/src/api/modules/channel-integrations.ts","frontend/src/api/modules/opportunities.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/video-calls.ts","frontend/src/views/ai-agents/Metrics.vue","frontend/src/views/finance-os/ai/AutoFundScheduling.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/cash/CashControlTower.vue","frontend/src/views/finance-os/expense/CostAnomaly.vue","frontend/src/views/finance-os/expense/CostCenter.vue","frontend/src/views/finance-os/expense/ExpenseApprovalFlow.vue","frontend/src/views/finance-os/expense/NodeCost.vue","frontend/src/views/finance-os/expense/ProjectCost.vue","frontend/src/views/finance-os/revenue/AutoCollectionCenter.vue","frontend/src/views/finance-os/revenue/PriceTypes.vue","frontend/src/views/finance-os/revenue/RecognitionRules.vue","frontend/src/views/video-calls/Form.vue","frontend/src/views/video-calls/Index.vue","frontend/vite.config.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":1161980,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-10T10:10:32+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1773108932
|
1773108932
|
0
|
1773108932
|
1773108932
|
NULL
|
|
0
|
Edit
Delete
|
|
1032
|
feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获
|
6
|
5
|
ci.yml
|
993
|
5
|
0
|
refs/heads/main
|
68528dce9b8c543283a675374b5a23bc2e46c935
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72","after":"68528dce9b8c543283a675374b5a23bc2e46c935","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72...68528dce9b8c543283a675374b5a23bc2e46c935","commits":[{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},{"id":"5bf60bf54c42c8295b8e5595fba959e0821ceb85","message":"Fix TypeScript any violations in duo\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5bf60bf54c42c8295b8e5595fba959e0821ceb85","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T02:07:18+08:00","added":[],"removed":[],"modified":["backend/src/modules/contracts/contract.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/finance/finance-costing.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/leads/lead.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","frontend/src/api/index.ts","frontend/src/components/responsive/ResponsiveStats.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/knowledge-feedback/Index.vue"]},{"id":"169dc0ba22faf4ef27cd1d3c55114437b7855f23","message":"Replace any types in shared models\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/169dc0ba22faf4ef27cd1d3c55114437b7855f23","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T01:21:28+08:00","added":[".pnpm-type-check-output10.txt",".pnpm-type-check-output11.txt",".pnpm-type-check-output12.txt",".pnpm-type-check-output13.txt",".pnpm-type-check-output14.txt",".pnpm-type-check-output15.txt",".pnpm-type-check-output16.txt",".pnpm-type-check-output17.txt",".pnpm-type-check-output18.txt",".pnpm-type-check-output19.txt",".pnpm-type-check-output2.txt",".pnpm-type-check-output20.txt",".pnpm-type-check-output21.txt",".pnpm-type-check-output22.txt",".pnpm-type-check-output23.txt",".pnpm-type-check-output24.txt",".pnpm-type-check-output25.txt",".pnpm-type-check-output26.txt",".pnpm-type-check-output27.txt",".pnpm-type-check-output28.txt",".pnpm-type-check-output29.txt",".pnpm-type-check-output3.txt",".pnpm-type-check-output30.txt",".pnpm-type-check-output31.txt",".pnpm-type-check-output32.txt",".pnpm-type-check-output33.txt",".pnpm-type-check-output34.txt",".pnpm-type-check-output35.txt",".pnpm-type-check-output36.txt",".pnpm-type-check-output37.txt",".pnpm-type-check-output38.txt",".pnpm-type-check-output39.txt",".pnpm-type-check-output4.txt",".pnpm-type-check-output40.txt",".pnpm-type-check-output41.txt",".pnpm-type-check-output42.txt",".pnpm-type-check-output43.txt",".pnpm-type-check-output5.txt",".pnpm-type-check-output6.txt",".pnpm-type-check-output7.txt",".pnpm-type-check-output8.txt",".pnpm-type-check-output9.txt"],"removed":[],"modified":["backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/landing-pages/landing-page.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","backend/src/modules/supply-chain/supply-chain-platform.service.ts","backend/src/modules/system-events/system-event.service.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/LeadScoreCard.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/RecentActivities.vue","frontend/src/views/finance-os/cash/CashControlTower.vue","frontend/src/views/finance/MarketingReconciliation.vue","frontend/src/views/lead-scoring/Form.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/src/views/settings/Index.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/tickets/components/gantt/GanttToolbar.vue","frontend/src/views/tickets/components/gantt/TicketGanttChart.vue","frontend/src/views/tickets/components/gantt/composables/useGanttData.ts","shared/src/types/models.ts"]},{"id":"ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","message":"Fix shared model any usage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T22:54:25+08:00","added":[".gemini/policies/dev.toml",".pnpm-type-check-output.txt","backend/scripts/generate-route-inventory.ts","backend/src/modules/dashboard/omni-roi.service.ts","backend/src/modules/finance/reconciliation.controller.ts","backend/src/modules/finance/reconciliation.service.ts","backend/test-bpmn-moddle.js","backend/test-bpmn.mjs","backend/tests/business-flow.test.ts","docs/archive/sprint-stabilization-202602/GAP_MATRIX_20260206.md","docs/archive/sprint-stabilization-202602/route-contract-execution-checklist-v4-by-owner-detail.md","docs/audits/api-route-contract-audit.latest.md","docs/audits/event-publishing-audit.latest.md","docs/audits/route-registration-audit.latest.md","docs/audits/state-machine-integration-audit.latest.md","frontend/src/views/dashboard/OmniRoiDashboard.vue","frontend/src/views/finance/MarketingReconciliation.vue","scripts/db-performance-optimization.sql","scripts/gatekeeper.sh"],"removed":["reports/GAP_MATRIX_20260206.md","reports/route-contract-execution-checklist-v4-by-owner-detail.md"],"modified":["AGENTS.md","DEPLOY.md","GEMINI.md","backend/scripts/audit-baseline-gate.ts","backend/src/modules/channels/channel.controller.ts","backend/src/modules/channels/channel.service.ts","backend/src/modules/channels/index.ts","backend/src/modules/community-fission/community-fission.controller.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.service.ts","backend/src/modules/content-review/content-review.controller.ts","backend/src/modules/content-review/content-review.service.ts","backend/src/modules/customer-marketing/customer-marketing.controller.ts","backend/src/modules/customer-marketing/customer-marketing.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/devices/asset-activation.controller.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/diagnosis/diagnosis.controller.ts","backend/src/modules/diagnosis/diagnosis.routes.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/geo-analytics/geo-analytics.controller.ts","backend/src/modules/geo-analytics/geo-analytics.service.ts","backend/src/modules/groupbuy-products/groupbuy-product.controller.ts","backend/src/modules/groupbuy-products/groupbuy-product.routes.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/inventory/services/index.ts","backend/src/modules/inventory/services/inventory-warehouse.service.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.controller.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.routes.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.service.ts","backend/src/modules/leads/lead.controller.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/index.ts","backend/src/modules/livestream-analytics/livestream-analytics.controller.ts","backend/src/modules/livestream-analytics/livestream-analytics.routes.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.ts","backend/src/modules/livestream-products/livestream-product.controller.ts","backend/src/modules/livestream-products/livestream-product.routes.ts","backend/src/modules/livestream-products/livestream-product.service.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/controllers/product.controller.ts","backend/src/modules/products/controllers/sku.controller.ts","backend/src/modules/products/product.routes.ts","backend/src/modules/products/routes/sku.routes.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.controller.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/reports/report.controller.ts","backend/src/modules/reports/report.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/social-analytics/social-analytics.controller.ts","backend/src/modules/social-analytics/social-analytics.service.ts","frontend/src/api/adapters.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/stores/leads.ts","frontend/src/views/leads/Form.vue","frontend/src/views/opportunities/Pipeline.vue","frontend/src/views/orders/Detail.vue","frontend/src/views/quotes/Detail.vue","frontend/src/views/quotes/Index.vue","shared/src/types/models.ts"]},{"id":"b222af8d439100df34d9a6d61374df924561d451","message":"Update AI agent workflows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/b222af8d439100df34d9a6d61374df924561d451","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T09:06:43+08:00","added":["backend/test-moddle.js","backend/test-moddle2.js","backend/test-moddle3.js","docs/operations/toc-operations-manual.md"],"removed":[],"modified":["backend/package.json","backend/src/main.ts","backend/src/modules/ai-agents/ai-agent-im.schema.ts","backend/src/modules/ai-agents/ai-agent-im.types.ts","backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/ai-agent-im.service.ts","backend/src/modules/ai-agents/services/knowledge-vector-enhanced.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/model-state-manager.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/ai-agents/services/workflow-instance.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/process-designer/bpmn-converter.test.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.routes.ts","backend/src/modules/process-designer/process-designer.schema.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/targets/target.service.ts","frontend/src/api/modules/ai-agent.ts","frontend/src/api/modules/process-designer.ts","frontend/src/types/ai-agent.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/ai-agents/IMQueue.vue","frontend/src/views/ai-agents/LeadCollector.vue","frontend/src/views/process-designer/ProcessList.vue","pnpm-lock.yaml","scripts/start-all.sh"]}],"total_commits":0,"head_commit":{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":479330,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-27T07:30:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
24
|
1772148752
|
1772148814
|
0
|
1772148752
|
1772148814
|
NULL
|
|
0
|
Edit
Delete
|
|
1033
|
feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获
|
6
|
5
|
health-check.yml
|
994
|
-2
|
39
|
refs/heads/main
|
68528dce9b8c543283a675374b5a23bc2e46c935
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72","after":"68528dce9b8c543283a675374b5a23bc2e46c935","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72...68528dce9b8c543283a675374b5a23bc2e46c935","commits":[{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},{"id":"5bf60bf54c42c8295b8e5595fba959e0821ceb85","message":"Fix TypeScript any violations in duo\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5bf60bf54c42c8295b8e5595fba959e0821ceb85","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T02:07:18+08:00","added":[],"removed":[],"modified":["backend/src/modules/contracts/contract.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/finance/finance-costing.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/leads/lead.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","frontend/src/api/index.ts","frontend/src/components/responsive/ResponsiveStats.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/knowledge-feedback/Index.vue"]},{"id":"169dc0ba22faf4ef27cd1d3c55114437b7855f23","message":"Replace any types in shared models\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/169dc0ba22faf4ef27cd1d3c55114437b7855f23","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T01:21:28+08:00","added":[".pnpm-type-check-output10.txt",".pnpm-type-check-output11.txt",".pnpm-type-check-output12.txt",".pnpm-type-check-output13.txt",".pnpm-type-check-output14.txt",".pnpm-type-check-output15.txt",".pnpm-type-check-output16.txt",".pnpm-type-check-output17.txt",".pnpm-type-check-output18.txt",".pnpm-type-check-output19.txt",".pnpm-type-check-output2.txt",".pnpm-type-check-output20.txt",".pnpm-type-check-output21.txt",".pnpm-type-check-output22.txt",".pnpm-type-check-output23.txt",".pnpm-type-check-output24.txt",".pnpm-type-check-output25.txt",".pnpm-type-check-output26.txt",".pnpm-type-check-output27.txt",".pnpm-type-check-output28.txt",".pnpm-type-check-output29.txt",".pnpm-type-check-output3.txt",".pnpm-type-check-output30.txt",".pnpm-type-check-output31.txt",".pnpm-type-check-output32.txt",".pnpm-type-check-output33.txt",".pnpm-type-check-output34.txt",".pnpm-type-check-output35.txt",".pnpm-type-check-output36.txt",".pnpm-type-check-output37.txt",".pnpm-type-check-output38.txt",".pnpm-type-check-output39.txt",".pnpm-type-check-output4.txt",".pnpm-type-check-output40.txt",".pnpm-type-check-output41.txt",".pnpm-type-check-output42.txt",".pnpm-type-check-output43.txt",".pnpm-type-check-output5.txt",".pnpm-type-check-output6.txt",".pnpm-type-check-output7.txt",".pnpm-type-check-output8.txt",".pnpm-type-check-output9.txt"],"removed":[],"modified":["backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/landing-pages/landing-page.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","backend/src/modules/supply-chain/supply-chain-platform.service.ts","backend/src/modules/system-events/system-event.service.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/LeadScoreCard.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/RecentActivities.vue","frontend/src/views/finance-os/cash/CashControlTower.vue","frontend/src/views/finance/MarketingReconciliation.vue","frontend/src/views/lead-scoring/Form.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/src/views/settings/Index.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/tickets/components/gantt/GanttToolbar.vue","frontend/src/views/tickets/components/gantt/TicketGanttChart.vue","frontend/src/views/tickets/components/gantt/composables/useGanttData.ts","shared/src/types/models.ts"]},{"id":"ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","message":"Fix shared model any usage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T22:54:25+08:00","added":[".gemini/policies/dev.toml",".pnpm-type-check-output.txt","backend/scripts/generate-route-inventory.ts","backend/src/modules/dashboard/omni-roi.service.ts","backend/src/modules/finance/reconciliation.controller.ts","backend/src/modules/finance/reconciliation.service.ts","backend/test-bpmn-moddle.js","backend/test-bpmn.mjs","backend/tests/business-flow.test.ts","docs/archive/sprint-stabilization-202602/GAP_MATRIX_20260206.md","docs/archive/sprint-stabilization-202602/route-contract-execution-checklist-v4-by-owner-detail.md","docs/audits/api-route-contract-audit.latest.md","docs/audits/event-publishing-audit.latest.md","docs/audits/route-registration-audit.latest.md","docs/audits/state-machine-integration-audit.latest.md","frontend/src/views/dashboard/OmniRoiDashboard.vue","frontend/src/views/finance/MarketingReconciliation.vue","scripts/db-performance-optimization.sql","scripts/gatekeeper.sh"],"removed":["reports/GAP_MATRIX_20260206.md","reports/route-contract-execution-checklist-v4-by-owner-detail.md"],"modified":["AGENTS.md","DEPLOY.md","GEMINI.md","backend/scripts/audit-baseline-gate.ts","backend/src/modules/channels/channel.controller.ts","backend/src/modules/channels/channel.service.ts","backend/src/modules/channels/index.ts","backend/src/modules/community-fission/community-fission.controller.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.service.ts","backend/src/modules/content-review/content-review.controller.ts","backend/src/modules/content-review/content-review.service.ts","backend/src/modules/customer-marketing/customer-marketing.controller.ts","backend/src/modules/customer-marketing/customer-marketing.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/devices/asset-activation.controller.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/diagnosis/diagnosis.controller.ts","backend/src/modules/diagnosis/diagnosis.routes.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/geo-analytics/geo-analytics.controller.ts","backend/src/modules/geo-analytics/geo-analytics.service.ts","backend/src/modules/groupbuy-products/groupbuy-product.controller.ts","backend/src/modules/groupbuy-products/groupbuy-product.routes.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/inventory/services/index.ts","backend/src/modules/inventory/services/inventory-warehouse.service.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.controller.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.routes.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.service.ts","backend/src/modules/leads/lead.controller.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/index.ts","backend/src/modules/livestream-analytics/livestream-analytics.controller.ts","backend/src/modules/livestream-analytics/livestream-analytics.routes.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.ts","backend/src/modules/livestream-products/livestream-product.controller.ts","backend/src/modules/livestream-products/livestream-product.routes.ts","backend/src/modules/livestream-products/livestream-product.service.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/controllers/product.controller.ts","backend/src/modules/products/controllers/sku.controller.ts","backend/src/modules/products/product.routes.ts","backend/src/modules/products/routes/sku.routes.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.controller.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/reports/report.controller.ts","backend/src/modules/reports/report.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/social-analytics/social-analytics.controller.ts","backend/src/modules/social-analytics/social-analytics.service.ts","frontend/src/api/adapters.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/stores/leads.ts","frontend/src/views/leads/Form.vue","frontend/src/views/opportunities/Pipeline.vue","frontend/src/views/orders/Detail.vue","frontend/src/views/quotes/Detail.vue","frontend/src/views/quotes/Index.vue","shared/src/types/models.ts"]},{"id":"b222af8d439100df34d9a6d61374df924561d451","message":"Update AI agent workflows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/b222af8d439100df34d9a6d61374df924561d451","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T09:06:43+08:00","added":["backend/test-moddle.js","backend/test-moddle2.js","backend/test-moddle3.js","docs/operations/toc-operations-manual.md"],"removed":[],"modified":["backend/package.json","backend/src/main.ts","backend/src/modules/ai-agents/ai-agent-im.schema.ts","backend/src/modules/ai-agents/ai-agent-im.types.ts","backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/ai-agent-im.service.ts","backend/src/modules/ai-agents/services/knowledge-vector-enhanced.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/model-state-manager.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/ai-agents/services/workflow-instance.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/process-designer/bpmn-converter.test.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.routes.ts","backend/src/modules/process-designer/process-designer.schema.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/targets/target.service.ts","frontend/src/api/modules/ai-agent.ts","frontend/src/api/modules/process-designer.ts","frontend/src/types/ai-agent.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/ai-agents/IMQueue.vue","frontend/src/views/ai-agents/LeadCollector.vue","frontend/src/views/process-designer/ProcessList.vue","pnpm-lock.yaml","scripts/start-all.sh"]}],"total_commits":0,"head_commit":{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":479330,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-27T07:30:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772148910
|
1772148910
|
0
|
1772148910
|
1772148910
|
NULL
|
|
0
|
Edit
Delete
|
|
1034
|
feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获
|
6
|
5
|
health-check.yml
|
995
|
-2
|
39
|
refs/heads/main
|
68528dce9b8c543283a675374b5a23bc2e46c935
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72","after":"68528dce9b8c543283a675374b5a23bc2e46c935","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72...68528dce9b8c543283a675374b5a23bc2e46c935","commits":[{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},{"id":"5bf60bf54c42c8295b8e5595fba959e0821ceb85","message":"Fix TypeScript any violations in duo\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5bf60bf54c42c8295b8e5595fba959e0821ceb85","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T02:07:18+08:00","added":[],"removed":[],"modified":["backend/src/modules/contracts/contract.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/finance/finance-costing.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/leads/lead.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","frontend/src/api/index.ts","frontend/src/components/responsive/ResponsiveStats.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/knowledge-feedback/Index.vue"]},{"id":"169dc0ba22faf4ef27cd1d3c55114437b7855f23","message":"Replace any types in shared models\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/169dc0ba22faf4ef27cd1d3c55114437b7855f23","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T01:21:28+08:00","added":[".pnpm-type-check-output10.txt",".pnpm-type-check-output11.txt",".pnpm-type-check-output12.txt",".pnpm-type-check-output13.txt",".pnpm-type-check-output14.txt",".pnpm-type-check-output15.txt",".pnpm-type-check-output16.txt",".pnpm-type-check-output17.txt",".pnpm-type-check-output18.txt",".pnpm-type-check-output19.txt",".pnpm-type-check-output2.txt",".pnpm-type-check-output20.txt",".pnpm-type-check-output21.txt",".pnpm-type-check-output22.txt",".pnpm-type-check-output23.txt",".pnpm-type-check-output24.txt",".pnpm-type-check-output25.txt",".pnpm-type-check-output26.txt",".pnpm-type-check-output27.txt",".pnpm-type-check-output28.txt",".pnpm-type-check-output29.txt",".pnpm-type-check-output3.txt",".pnpm-type-check-output30.txt",".pnpm-type-check-output31.txt",".pnpm-type-check-output32.txt",".pnpm-type-check-output33.txt",".pnpm-type-check-output34.txt",".pnpm-type-check-output35.txt",".pnpm-type-check-output36.txt",".pnpm-type-check-output37.txt",".pnpm-type-check-output38.txt",".pnpm-type-check-output39.txt",".pnpm-type-check-output4.txt",".pnpm-type-check-output40.txt",".pnpm-type-check-output41.txt",".pnpm-type-check-output42.txt",".pnpm-type-check-output43.txt",".pnpm-type-check-output5.txt",".pnpm-type-check-output6.txt",".pnpm-type-check-output7.txt",".pnpm-type-check-output8.txt",".pnpm-type-check-output9.txt"],"removed":[],"modified":["backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/landing-pages/landing-page.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","backend/src/modules/supply-chain/supply-chain-platform.service.ts","backend/src/modules/system-events/system-event.service.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/LeadScoreCard.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/RecentActivities.vue","frontend/src/views/finance-os/cash/CashControlTower.vue","frontend/src/views/finance/MarketingReconciliation.vue","frontend/src/views/lead-scoring/Form.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/src/views/settings/Index.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/tickets/components/gantt/GanttToolbar.vue","frontend/src/views/tickets/components/gantt/TicketGanttChart.vue","frontend/src/views/tickets/components/gantt/composables/useGanttData.ts","shared/src/types/models.ts"]},{"id":"ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","message":"Fix shared model any usage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T22:54:25+08:00","added":[".gemini/policies/dev.toml",".pnpm-type-check-output.txt","backend/scripts/generate-route-inventory.ts","backend/src/modules/dashboard/omni-roi.service.ts","backend/src/modules/finance/reconciliation.controller.ts","backend/src/modules/finance/reconciliation.service.ts","backend/test-bpmn-moddle.js","backend/test-bpmn.mjs","backend/tests/business-flow.test.ts","docs/archive/sprint-stabilization-202602/GAP_MATRIX_20260206.md","docs/archive/sprint-stabilization-202602/route-contract-execution-checklist-v4-by-owner-detail.md","docs/audits/api-route-contract-audit.latest.md","docs/audits/event-publishing-audit.latest.md","docs/audits/route-registration-audit.latest.md","docs/audits/state-machine-integration-audit.latest.md","frontend/src/views/dashboard/OmniRoiDashboard.vue","frontend/src/views/finance/MarketingReconciliation.vue","scripts/db-performance-optimization.sql","scripts/gatekeeper.sh"],"removed":["reports/GAP_MATRIX_20260206.md","reports/route-contract-execution-checklist-v4-by-owner-detail.md"],"modified":["AGENTS.md","DEPLOY.md","GEMINI.md","backend/scripts/audit-baseline-gate.ts","backend/src/modules/channels/channel.controller.ts","backend/src/modules/channels/channel.service.ts","backend/src/modules/channels/index.ts","backend/src/modules/community-fission/community-fission.controller.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.service.ts","backend/src/modules/content-review/content-review.controller.ts","backend/src/modules/content-review/content-review.service.ts","backend/src/modules/customer-marketing/customer-marketing.controller.ts","backend/src/modules/customer-marketing/customer-marketing.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/devices/asset-activation.controller.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/diagnosis/diagnosis.controller.ts","backend/src/modules/diagnosis/diagnosis.routes.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/geo-analytics/geo-analytics.controller.ts","backend/src/modules/geo-analytics/geo-analytics.service.ts","backend/src/modules/groupbuy-products/groupbuy-product.controller.ts","backend/src/modules/groupbuy-products/groupbuy-product.routes.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/inventory/services/index.ts","backend/src/modules/inventory/services/inventory-warehouse.service.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.controller.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.routes.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.service.ts","backend/src/modules/leads/lead.controller.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/index.ts","backend/src/modules/livestream-analytics/livestream-analytics.controller.ts","backend/src/modules/livestream-analytics/livestream-analytics.routes.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.ts","backend/src/modules/livestream-products/livestream-product.controller.ts","backend/src/modules/livestream-products/livestream-product.routes.ts","backend/src/modules/livestream-products/livestream-product.service.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/controllers/product.controller.ts","backend/src/modules/products/controllers/sku.controller.ts","backend/src/modules/products/product.routes.ts","backend/src/modules/products/routes/sku.routes.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.controller.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/reports/report.controller.ts","backend/src/modules/reports/report.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/social-analytics/social-analytics.controller.ts","backend/src/modules/social-analytics/social-analytics.service.ts","frontend/src/api/adapters.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/stores/leads.ts","frontend/src/views/leads/Form.vue","frontend/src/views/opportunities/Pipeline.vue","frontend/src/views/orders/Detail.vue","frontend/src/views/quotes/Detail.vue","frontend/src/views/quotes/Index.vue","shared/src/types/models.ts"]},{"id":"b222af8d439100df34d9a6d61374df924561d451","message":"Update AI agent workflows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/b222af8d439100df34d9a6d61374df924561d451","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T09:06:43+08:00","added":["backend/test-moddle.js","backend/test-moddle2.js","backend/test-moddle3.js","docs/operations/toc-operations-manual.md"],"removed":[],"modified":["backend/package.json","backend/src/main.ts","backend/src/modules/ai-agents/ai-agent-im.schema.ts","backend/src/modules/ai-agents/ai-agent-im.types.ts","backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/ai-agent-im.service.ts","backend/src/modules/ai-agents/services/knowledge-vector-enhanced.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/model-state-manager.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/ai-agents/services/workflow-instance.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/process-designer/bpmn-converter.test.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.routes.ts","backend/src/modules/process-designer/process-designer.schema.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/targets/target.service.ts","frontend/src/api/modules/ai-agent.ts","frontend/src/api/modules/process-designer.ts","frontend/src/types/ai-agent.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/ai-agents/IMQueue.vue","frontend/src/views/ai-agents/LeadCollector.vue","frontend/src/views/process-designer/ProcessList.vue","pnpm-lock.yaml","scripts/start-all.sh"]}],"total_commits":0,"head_commit":{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":479330,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-27T07:30:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772149210
|
1772149210
|
0
|
1772149210
|
1772149210
|
NULL
|
|
0
|
Edit
Delete
|
|
1035
|
feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获
|
6
|
5
|
health-check.yml
|
996
|
-2
|
39
|
refs/heads/main
|
68528dce9b8c543283a675374b5a23bc2e46c935
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72","after":"68528dce9b8c543283a675374b5a23bc2e46c935","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72...68528dce9b8c543283a675374b5a23bc2e46c935","commits":[{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},{"id":"5bf60bf54c42c8295b8e5595fba959e0821ceb85","message":"Fix TypeScript any violations in duo\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5bf60bf54c42c8295b8e5595fba959e0821ceb85","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T02:07:18+08:00","added":[],"removed":[],"modified":["backend/src/modules/contracts/contract.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/finance/finance-costing.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/leads/lead.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","frontend/src/api/index.ts","frontend/src/components/responsive/ResponsiveStats.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/knowledge-feedback/Index.vue"]},{"id":"169dc0ba22faf4ef27cd1d3c55114437b7855f23","message":"Replace any types in shared models\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/169dc0ba22faf4ef27cd1d3c55114437b7855f23","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T01:21:28+08:00","added":[".pnpm-type-check-output10.txt",".pnpm-type-check-output11.txt",".pnpm-type-check-output12.txt",".pnpm-type-check-output13.txt",".pnpm-type-check-output14.txt",".pnpm-type-check-output15.txt",".pnpm-type-check-output16.txt",".pnpm-type-check-output17.txt",".pnpm-type-check-output18.txt",".pnpm-type-check-output19.txt",".pnpm-type-check-output2.txt",".pnpm-type-check-output20.txt",".pnpm-type-check-output21.txt",".pnpm-type-check-output22.txt",".pnpm-type-check-output23.txt",".pnpm-type-check-output24.txt",".pnpm-type-check-output25.txt",".pnpm-type-check-output26.txt",".pnpm-type-check-output27.txt",".pnpm-type-check-output28.txt",".pnpm-type-check-output29.txt",".pnpm-type-check-output3.txt",".pnpm-type-check-output30.txt",".pnpm-type-check-output31.txt",".pnpm-type-check-output32.txt",".pnpm-type-check-output33.txt",".pnpm-type-check-output34.txt",".pnpm-type-check-output35.txt",".pnpm-type-check-output36.txt",".pnpm-type-check-output37.txt",".pnpm-type-check-output38.txt",".pnpm-type-check-output39.txt",".pnpm-type-check-output4.txt",".pnpm-type-check-output40.txt",".pnpm-type-check-output41.txt",".pnpm-type-check-output42.txt",".pnpm-type-check-output43.txt",".pnpm-type-check-output5.txt",".pnpm-type-check-output6.txt",".pnpm-type-check-output7.txt",".pnpm-type-check-output8.txt",".pnpm-type-check-output9.txt"],"removed":[],"modified":["backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/landing-pages/landing-page.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","backend/src/modules/supply-chain/supply-chain-platform.service.ts","backend/src/modules/system-events/system-event.service.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/LeadScoreCard.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/RecentActivities.vue","frontend/src/views/finance-os/cash/CashControlTower.vue","frontend/src/views/finance/MarketingReconciliation.vue","frontend/src/views/lead-scoring/Form.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/src/views/settings/Index.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/tickets/components/gantt/GanttToolbar.vue","frontend/src/views/tickets/components/gantt/TicketGanttChart.vue","frontend/src/views/tickets/components/gantt/composables/useGanttData.ts","shared/src/types/models.ts"]},{"id":"ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","message":"Fix shared model any usage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T22:54:25+08:00","added":[".gemini/policies/dev.toml",".pnpm-type-check-output.txt","backend/scripts/generate-route-inventory.ts","backend/src/modules/dashboard/omni-roi.service.ts","backend/src/modules/finance/reconciliation.controller.ts","backend/src/modules/finance/reconciliation.service.ts","backend/test-bpmn-moddle.js","backend/test-bpmn.mjs","backend/tests/business-flow.test.ts","docs/archive/sprint-stabilization-202602/GAP_MATRIX_20260206.md","docs/archive/sprint-stabilization-202602/route-contract-execution-checklist-v4-by-owner-detail.md","docs/audits/api-route-contract-audit.latest.md","docs/audits/event-publishing-audit.latest.md","docs/audits/route-registration-audit.latest.md","docs/audits/state-machine-integration-audit.latest.md","frontend/src/views/dashboard/OmniRoiDashboard.vue","frontend/src/views/finance/MarketingReconciliation.vue","scripts/db-performance-optimization.sql","scripts/gatekeeper.sh"],"removed":["reports/GAP_MATRIX_20260206.md","reports/route-contract-execution-checklist-v4-by-owner-detail.md"],"modified":["AGENTS.md","DEPLOY.md","GEMINI.md","backend/scripts/audit-baseline-gate.ts","backend/src/modules/channels/channel.controller.ts","backend/src/modules/channels/channel.service.ts","backend/src/modules/channels/index.ts","backend/src/modules/community-fission/community-fission.controller.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.service.ts","backend/src/modules/content-review/content-review.controller.ts","backend/src/modules/content-review/content-review.service.ts","backend/src/modules/customer-marketing/customer-marketing.controller.ts","backend/src/modules/customer-marketing/customer-marketing.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/devices/asset-activation.controller.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/diagnosis/diagnosis.controller.ts","backend/src/modules/diagnosis/diagnosis.routes.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/geo-analytics/geo-analytics.controller.ts","backend/src/modules/geo-analytics/geo-analytics.service.ts","backend/src/modules/groupbuy-products/groupbuy-product.controller.ts","backend/src/modules/groupbuy-products/groupbuy-product.routes.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/inventory/services/index.ts","backend/src/modules/inventory/services/inventory-warehouse.service.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.controller.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.routes.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.service.ts","backend/src/modules/leads/lead.controller.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/index.ts","backend/src/modules/livestream-analytics/livestream-analytics.controller.ts","backend/src/modules/livestream-analytics/livestream-analytics.routes.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.ts","backend/src/modules/livestream-products/livestream-product.controller.ts","backend/src/modules/livestream-products/livestream-product.routes.ts","backend/src/modules/livestream-products/livestream-product.service.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/controllers/product.controller.ts","backend/src/modules/products/controllers/sku.controller.ts","backend/src/modules/products/product.routes.ts","backend/src/modules/products/routes/sku.routes.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.controller.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/reports/report.controller.ts","backend/src/modules/reports/report.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/social-analytics/social-analytics.controller.ts","backend/src/modules/social-analytics/social-analytics.service.ts","frontend/src/api/adapters.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/stores/leads.ts","frontend/src/views/leads/Form.vue","frontend/src/views/opportunities/Pipeline.vue","frontend/src/views/orders/Detail.vue","frontend/src/views/quotes/Detail.vue","frontend/src/views/quotes/Index.vue","shared/src/types/models.ts"]},{"id":"b222af8d439100df34d9a6d61374df924561d451","message":"Update AI agent workflows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/b222af8d439100df34d9a6d61374df924561d451","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T09:06:43+08:00","added":["backend/test-moddle.js","backend/test-moddle2.js","backend/test-moddle3.js","docs/operations/toc-operations-manual.md"],"removed":[],"modified":["backend/package.json","backend/src/main.ts","backend/src/modules/ai-agents/ai-agent-im.schema.ts","backend/src/modules/ai-agents/ai-agent-im.types.ts","backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/ai-agent-im.service.ts","backend/src/modules/ai-agents/services/knowledge-vector-enhanced.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/model-state-manager.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/ai-agents/services/workflow-instance.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/process-designer/bpmn-converter.test.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.routes.ts","backend/src/modules/process-designer/process-designer.schema.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/targets/target.service.ts","frontend/src/api/modules/ai-agent.ts","frontend/src/api/modules/process-designer.ts","frontend/src/types/ai-agent.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/ai-agents/IMQueue.vue","frontend/src/views/ai-agents/LeadCollector.vue","frontend/src/views/process-designer/ProcessList.vue","pnpm-lock.yaml","scripts/start-all.sh"]}],"total_commits":0,"head_commit":{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":479330,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-27T07:30:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772149510
|
1772149510
|
0
|
1772149510
|
1772149510
|
NULL
|
|
0
|
Edit
Delete
|
|
1036
|
feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获
|
6
|
5
|
health-check.yml
|
997
|
-2
|
39
|
refs/heads/main
|
68528dce9b8c543283a675374b5a23bc2e46c935
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72","after":"68528dce9b8c543283a675374b5a23bc2e46c935","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72...68528dce9b8c543283a675374b5a23bc2e46c935","commits":[{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},{"id":"5bf60bf54c42c8295b8e5595fba959e0821ceb85","message":"Fix TypeScript any violations in duo\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5bf60bf54c42c8295b8e5595fba959e0821ceb85","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T02:07:18+08:00","added":[],"removed":[],"modified":["backend/src/modules/contracts/contract.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/finance/finance-costing.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/leads/lead.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","frontend/src/api/index.ts","frontend/src/components/responsive/ResponsiveStats.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/knowledge-feedback/Index.vue"]},{"id":"169dc0ba22faf4ef27cd1d3c55114437b7855f23","message":"Replace any types in shared models\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/169dc0ba22faf4ef27cd1d3c55114437b7855f23","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T01:21:28+08:00","added":[".pnpm-type-check-output10.txt",".pnpm-type-check-output11.txt",".pnpm-type-check-output12.txt",".pnpm-type-check-output13.txt",".pnpm-type-check-output14.txt",".pnpm-type-check-output15.txt",".pnpm-type-check-output16.txt",".pnpm-type-check-output17.txt",".pnpm-type-check-output18.txt",".pnpm-type-check-output19.txt",".pnpm-type-check-output2.txt",".pnpm-type-check-output20.txt",".pnpm-type-check-output21.txt",".pnpm-type-check-output22.txt",".pnpm-type-check-output23.txt",".pnpm-type-check-output24.txt",".pnpm-type-check-output25.txt",".pnpm-type-check-output26.txt",".pnpm-type-check-output27.txt",".pnpm-type-check-output28.txt",".pnpm-type-check-output29.txt",".pnpm-type-check-output3.txt",".pnpm-type-check-output30.txt",".pnpm-type-check-output31.txt",".pnpm-type-check-output32.txt",".pnpm-type-check-output33.txt",".pnpm-type-check-output34.txt",".pnpm-type-check-output35.txt",".pnpm-type-check-output36.txt",".pnpm-type-check-output37.txt",".pnpm-type-check-output38.txt",".pnpm-type-check-output39.txt",".pnpm-type-check-output4.txt",".pnpm-type-check-output40.txt",".pnpm-type-check-output41.txt",".pnpm-type-check-output42.txt",".pnpm-type-check-output43.txt",".pnpm-type-check-output5.txt",".pnpm-type-check-output6.txt",".pnpm-type-check-output7.txt",".pnpm-type-check-output8.txt",".pnpm-type-check-output9.txt"],"removed":[],"modified":["backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/landing-pages/landing-page.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","backend/src/modules/supply-chain/supply-chain-platform.service.ts","backend/src/modules/system-events/system-event.service.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/LeadScoreCard.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/RecentActivities.vue","frontend/src/views/finance-os/cash/CashControlTower.vue","frontend/src/views/finance/MarketingReconciliation.vue","frontend/src/views/lead-scoring/Form.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/src/views/settings/Index.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/tickets/components/gantt/GanttToolbar.vue","frontend/src/views/tickets/components/gantt/TicketGanttChart.vue","frontend/src/views/tickets/components/gantt/composables/useGanttData.ts","shared/src/types/models.ts"]},{"id":"ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","message":"Fix shared model any usage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T22:54:25+08:00","added":[".gemini/policies/dev.toml",".pnpm-type-check-output.txt","backend/scripts/generate-route-inventory.ts","backend/src/modules/dashboard/omni-roi.service.ts","backend/src/modules/finance/reconciliation.controller.ts","backend/src/modules/finance/reconciliation.service.ts","backend/test-bpmn-moddle.js","backend/test-bpmn.mjs","backend/tests/business-flow.test.ts","docs/archive/sprint-stabilization-202602/GAP_MATRIX_20260206.md","docs/archive/sprint-stabilization-202602/route-contract-execution-checklist-v4-by-owner-detail.md","docs/audits/api-route-contract-audit.latest.md","docs/audits/event-publishing-audit.latest.md","docs/audits/route-registration-audit.latest.md","docs/audits/state-machine-integration-audit.latest.md","frontend/src/views/dashboard/OmniRoiDashboard.vue","frontend/src/views/finance/MarketingReconciliation.vue","scripts/db-performance-optimization.sql","scripts/gatekeeper.sh"],"removed":["reports/GAP_MATRIX_20260206.md","reports/route-contract-execution-checklist-v4-by-owner-detail.md"],"modified":["AGENTS.md","DEPLOY.md","GEMINI.md","backend/scripts/audit-baseline-gate.ts","backend/src/modules/channels/channel.controller.ts","backend/src/modules/channels/channel.service.ts","backend/src/modules/channels/index.ts","backend/src/modules/community-fission/community-fission.controller.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.service.ts","backend/src/modules/content-review/content-review.controller.ts","backend/src/modules/content-review/content-review.service.ts","backend/src/modules/customer-marketing/customer-marketing.controller.ts","backend/src/modules/customer-marketing/customer-marketing.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/devices/asset-activation.controller.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/diagnosis/diagnosis.controller.ts","backend/src/modules/diagnosis/diagnosis.routes.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/geo-analytics/geo-analytics.controller.ts","backend/src/modules/geo-analytics/geo-analytics.service.ts","backend/src/modules/groupbuy-products/groupbuy-product.controller.ts","backend/src/modules/groupbuy-products/groupbuy-product.routes.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/inventory/services/index.ts","backend/src/modules/inventory/services/inventory-warehouse.service.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.controller.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.routes.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.service.ts","backend/src/modules/leads/lead.controller.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/index.ts","backend/src/modules/livestream-analytics/livestream-analytics.controller.ts","backend/src/modules/livestream-analytics/livestream-analytics.routes.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.ts","backend/src/modules/livestream-products/livestream-product.controller.ts","backend/src/modules/livestream-products/livestream-product.routes.ts","backend/src/modules/livestream-products/livestream-product.service.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/controllers/product.controller.ts","backend/src/modules/products/controllers/sku.controller.ts","backend/src/modules/products/product.routes.ts","backend/src/modules/products/routes/sku.routes.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.controller.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/reports/report.controller.ts","backend/src/modules/reports/report.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/social-analytics/social-analytics.controller.ts","backend/src/modules/social-analytics/social-analytics.service.ts","frontend/src/api/adapters.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/stores/leads.ts","frontend/src/views/leads/Form.vue","frontend/src/views/opportunities/Pipeline.vue","frontend/src/views/orders/Detail.vue","frontend/src/views/quotes/Detail.vue","frontend/src/views/quotes/Index.vue","shared/src/types/models.ts"]},{"id":"b222af8d439100df34d9a6d61374df924561d451","message":"Update AI agent workflows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/b222af8d439100df34d9a6d61374df924561d451","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T09:06:43+08:00","added":["backend/test-moddle.js","backend/test-moddle2.js","backend/test-moddle3.js","docs/operations/toc-operations-manual.md"],"removed":[],"modified":["backend/package.json","backend/src/main.ts","backend/src/modules/ai-agents/ai-agent-im.schema.ts","backend/src/modules/ai-agents/ai-agent-im.types.ts","backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/ai-agent-im.service.ts","backend/src/modules/ai-agents/services/knowledge-vector-enhanced.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/model-state-manager.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/ai-agents/services/workflow-instance.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/process-designer/bpmn-converter.test.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.routes.ts","backend/src/modules/process-designer/process-designer.schema.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/targets/target.service.ts","frontend/src/api/modules/ai-agent.ts","frontend/src/api/modules/process-designer.ts","frontend/src/types/ai-agent.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/ai-agents/IMQueue.vue","frontend/src/views/ai-agents/LeadCollector.vue","frontend/src/views/process-designer/ProcessList.vue","pnpm-lock.yaml","scripts/start-all.sh"]}],"total_commits":0,"head_commit":{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":479330,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-27T07:30:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772149810
|
1772149810
|
0
|
1772149810
|
1772149810
|
NULL
|
|
0
|
Edit
Delete
|
|
1037
|
feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获
|
6
|
5
|
health-check.yml
|
998
|
-2
|
39
|
refs/heads/main
|
68528dce9b8c543283a675374b5a23bc2e46c935
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72","after":"68528dce9b8c543283a675374b5a23bc2e46c935","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c75a655fbcae4e4a5f0f675e72c422c5c3ff5a72...68528dce9b8c543283a675374b5a23bc2e46c935","commits":[{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},{"id":"5bf60bf54c42c8295b8e5595fba959e0821ceb85","message":"Fix TypeScript any violations in duo\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5bf60bf54c42c8295b8e5595fba959e0821ceb85","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T02:07:18+08:00","added":[],"removed":[],"modified":["backend/src/modules/contracts/contract.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/finance/finance-costing.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/leads/lead.schema.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/products/services/product.service.test.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","frontend/src/api/index.ts","frontend/src/components/responsive/ResponsiveStats.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/knowledge-feedback/Index.vue"]},{"id":"169dc0ba22faf4ef27cd1d3c55114437b7855f23","message":"Replace any types in shared models\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/169dc0ba22faf4ef27cd1d3c55114437b7855f23","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T01:21:28+08:00","added":[".pnpm-type-check-output10.txt",".pnpm-type-check-output11.txt",".pnpm-type-check-output12.txt",".pnpm-type-check-output13.txt",".pnpm-type-check-output14.txt",".pnpm-type-check-output15.txt",".pnpm-type-check-output16.txt",".pnpm-type-check-output17.txt",".pnpm-type-check-output18.txt",".pnpm-type-check-output19.txt",".pnpm-type-check-output2.txt",".pnpm-type-check-output20.txt",".pnpm-type-check-output21.txt",".pnpm-type-check-output22.txt",".pnpm-type-check-output23.txt",".pnpm-type-check-output24.txt",".pnpm-type-check-output25.txt",".pnpm-type-check-output26.txt",".pnpm-type-check-output27.txt",".pnpm-type-check-output28.txt",".pnpm-type-check-output29.txt",".pnpm-type-check-output3.txt",".pnpm-type-check-output30.txt",".pnpm-type-check-output31.txt",".pnpm-type-check-output32.txt",".pnpm-type-check-output33.txt",".pnpm-type-check-output34.txt",".pnpm-type-check-output35.txt",".pnpm-type-check-output36.txt",".pnpm-type-check-output37.txt",".pnpm-type-check-output38.txt",".pnpm-type-check-output39.txt",".pnpm-type-check-output4.txt",".pnpm-type-check-output40.txt",".pnpm-type-check-output41.txt",".pnpm-type-check-output42.txt",".pnpm-type-check-output43.txt",".pnpm-type-check-output5.txt",".pnpm-type-check-output6.txt",".pnpm-type-check-output7.txt",".pnpm-type-check-output8.txt",".pnpm-type-check-output9.txt"],"removed":[],"modified":["backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/landing-pages/landing-page.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","backend/src/modules/supply-chain/supply-chain-platform.service.ts","backend/src/modules/system-events/system-event.service.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/LeadScoreCard.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/RecentActivities.vue","frontend/src/views/finance-os/cash/CashControlTower.vue","frontend/src/views/finance/MarketingReconciliation.vue","frontend/src/views/lead-scoring/Form.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/service-dashboard/components/TrendsPanel.vue","frontend/src/views/settings/Index.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/tickets/components/gantt/GanttToolbar.vue","frontend/src/views/tickets/components/gantt/TicketGanttChart.vue","frontend/src/views/tickets/components/gantt/composables/useGanttData.ts","shared/src/types/models.ts"]},{"id":"ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","message":"Fix shared model any usage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ffba80d4f2db2f955107f264e83c8d2a42f6b8e9","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T22:54:25+08:00","added":[".gemini/policies/dev.toml",".pnpm-type-check-output.txt","backend/scripts/generate-route-inventory.ts","backend/src/modules/dashboard/omni-roi.service.ts","backend/src/modules/finance/reconciliation.controller.ts","backend/src/modules/finance/reconciliation.service.ts","backend/test-bpmn-moddle.js","backend/test-bpmn.mjs","backend/tests/business-flow.test.ts","docs/archive/sprint-stabilization-202602/GAP_MATRIX_20260206.md","docs/archive/sprint-stabilization-202602/route-contract-execution-checklist-v4-by-owner-detail.md","docs/audits/api-route-contract-audit.latest.md","docs/audits/event-publishing-audit.latest.md","docs/audits/route-registration-audit.latest.md","docs/audits/state-machine-integration-audit.latest.md","frontend/src/views/dashboard/OmniRoiDashboard.vue","frontend/src/views/finance/MarketingReconciliation.vue","scripts/db-performance-optimization.sql","scripts/gatekeeper.sh"],"removed":["reports/GAP_MATRIX_20260206.md","reports/route-contract-execution-checklist-v4-by-owner-detail.md"],"modified":["AGENTS.md","DEPLOY.md","GEMINI.md","backend/scripts/audit-baseline-gate.ts","backend/src/modules/channels/channel.controller.ts","backend/src/modules/channels/channel.service.ts","backend/src/modules/channels/index.ts","backend/src/modules/community-fission/community-fission.controller.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/content-distribution/content-distribution.controller.ts","backend/src/modules/content-distribution/content-distribution.service.ts","backend/src/modules/content-review/content-review.controller.ts","backend/src/modules/content-review/content-review.service.ts","backend/src/modules/customer-marketing/customer-marketing.controller.ts","backend/src/modules/customer-marketing/customer-marketing.service.ts","backend/src/modules/dashboard/dashboard.controller.ts","backend/src/modules/dashboard/dashboard.routes.ts","backend/src/modules/devices/asset-activation.controller.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/diagnosis/diagnosis.controller.ts","backend/src/modules/diagnosis/diagnosis.routes.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/geo-analytics/geo-analytics.controller.ts","backend/src/modules/geo-analytics/geo-analytics.service.ts","backend/src/modules/groupbuy-products/groupbuy-product.controller.ts","backend/src/modules/groupbuy-products/groupbuy-product.routes.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.ts","backend/src/modules/inventory/inventory.service.ts","backend/src/modules/inventory/services/index.ts","backend/src/modules/inventory/services/inventory-warehouse.service.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.controller.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.routes.ts","backend/src/modules/knowledge-feedback/knowledge-feedback.service.ts","backend/src/modules/leads/lead.controller.ts","backend/src/modules/leads/lead.service.ts","backend/src/modules/livestream-analytics/index.ts","backend/src/modules/livestream-analytics/livestream-analytics.controller.ts","backend/src/modules/livestream-analytics/livestream-analytics.routes.ts","backend/src/modules/livestream-analytics/livestream-analytics.service.ts","backend/src/modules/livestream-products/livestream-product.controller.ts","backend/src/modules/livestream-products/livestream-product.routes.ts","backend/src/modules/livestream-products/livestream-product.service.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/controllers/product.controller.ts","backend/src/modules/products/controllers/sku.controller.ts","backend/src/modules/products/product.routes.ts","backend/src/modules/products/routes/sku.routes.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.controller.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/reports/report.controller.ts","backend/src/modules/reports/report.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/social-analytics/social-analytics.controller.ts","backend/src/modules/social-analytics/social-analytics.service.ts","frontend/src/api/adapters.ts","frontend/src/api/index.ts","frontend/src/api/modules/dashboard.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/leads.ts","frontend/src/api/modules/quotes.ts","frontend/src/stores/leads.ts","frontend/src/views/leads/Form.vue","frontend/src/views/opportunities/Pipeline.vue","frontend/src/views/orders/Detail.vue","frontend/src/views/quotes/Detail.vue","frontend/src/views/quotes/Index.vue","shared/src/types/models.ts"]},{"id":"b222af8d439100df34d9a6d61374df924561d451","message":"Update AI agent workflows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/b222af8d439100df34d9a6d61374df924561d451","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-26T09:06:43+08:00","added":["backend/test-moddle.js","backend/test-moddle2.js","backend/test-moddle3.js","docs/operations/toc-operations-manual.md"],"removed":[],"modified":["backend/package.json","backend/src/main.ts","backend/src/modules/ai-agents/ai-agent-im.schema.ts","backend/src/modules/ai-agents/ai-agent-im.types.ts","backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/agent-group-query.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/ai-agent-im.service.ts","backend/src/modules/ai-agents/services/knowledge-vector-enhanced.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/model-state-manager.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/ai-agents/services/workflow-instance.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/process-designer/bpmn-converter.test.ts","backend/src/modules/process-designer/bpmn-converter.ts","backend/src/modules/process-designer/process-designer.controller.ts","backend/src/modules/process-designer/process-designer.routes.ts","backend/src/modules/process-designer/process-designer.schema.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/services/product.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/targets/target.service.ts","frontend/src/api/modules/ai-agent.ts","frontend/src/api/modules/process-designer.ts","frontend/src/types/ai-agent.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/ai-agents/IMQueue.vue","frontend/src/views/ai-agents/LeadCollector.vue","frontend/src/views/process-designer/ProcessList.vue","pnpm-lock.yaml","scripts/start-all.sh"]}],"total_commits":0,"head_commit":{"id":"68528dce9b8c543283a675374b5a23bc2e46c935","message":"feat: SKU查询修复 + AI工作流状态机 + RAG集成 + 线索自动捕获\n\n1. 修复 SKU 服务 Prisma to-one 关系查询错误\n - 移除 products include 中无效的 where 子句(to-one 关系不支持)\n - 修复 list/get/getSkuByCode 三个方法\n\n2. 新增 AI 工作流状态机 (ai-workflow.machine.ts)\n - XState 5.x 实现:draft → active ↔ paused → archived\n - 包含守卫、动作、转换表、辅助函数\n - ai-agent.service.ts 集成 canTransitionAIWorkflow 校验\n\n3. IM 消息处理器 RAG 增强\n - 集成向量嵌入生成 (generateEmbedding)\n - 接入 ragEnhancedExecutor 知识检索增强\n - 实时线索捕获:识别 create_lead 意图自动提取线索\n\n4. 线索采集服务增强\n - 新增 AI 驱动的文本线索提取 (extractLeadFromText)\n - 新增 processIMLead 流水线:提取→清洗→验证→去重→创建\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/68528dce9b8c543283a675374b5a23bc2e46c935","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T07:32:22+08:00","added":["backend/src/shared/state-machines/machines/ai-workflow.machine.ts"],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/shared/state-machines/index.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":479330,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-27T07:30:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772150110
|
1772150110
|
0
|
1772150110
|
1772150110
|
NULL
|
|
0
|
Edit
Delete
|