|
8102
|
Stabilize local deployment and tenant-safe auth fl Stabilize local deployment and tenant-safe auth flows...
|
6
|
5
|
e2e-tests.yml
|
8027
|
5
|
0
|
refs/heads/main
|
6dde21cfcbb2a424db0efb8629b4351eb2a43315
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b2a0b35284edd65cdda0501ced15ca388220ddd","after":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1b2a0b35284edd65cdda0501ced15ca388220ddd...6dde21cfcbb2a424db0efb8629b4351eb2a43315","commits":[{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]}],"total_commits":0,"head_commit":{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1864576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-25T19:40:42+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
20
|
1774440695
|
1774444788
|
0
|
1774440694
|
1774451094
|
|
|
0
|
Edit
Delete
|
|
8103
|
Stabilize local deployment and tenant-safe auth fl Stabilize local deployment and tenant-safe auth flows...
|
6
|
5
|
test-pipeline.yml
|
8028
|
5
|
0
|
refs/heads/main
|
6dde21cfcbb2a424db0efb8629b4351eb2a43315
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b2a0b35284edd65cdda0501ced15ca388220ddd","after":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1b2a0b35284edd65cdda0501ced15ca388220ddd...6dde21cfcbb2a424db0efb8629b4351eb2a43315","commits":[{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]}],"total_commits":0,"head_commit":{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1864576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-25T19:40:42+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
24
|
0
|
1774443469
|
0
|
1774440695
|
1774443470
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
8104
|
Stabilize local deployment and tenant-safe auth fl Stabilize local deployment and tenant-safe auth flows...
|
6
|
5
|
health-check.yml
|
8029
|
-2
|
148
|
refs/heads/main
|
6dde21cfcbb2a424db0efb8629b4351eb2a43315
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b2a0b35284edd65cdda0501ced15ca388220ddd","after":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1b2a0b35284edd65cdda0501ced15ca388220ddd...6dde21cfcbb2a424db0efb8629b4351eb2a43315","commits":[{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]}],"total_commits":0,"head_commit":{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1864576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-25T19:40:42+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
|
1774444789
|
1774444789
|
0
|
1774440915
|
1774444789
|
|
|
0
|
Edit
Delete
|
|
8105
|
Stabilize local deployment and tenant-safe auth fl Stabilize local deployment and tenant-safe auth flows...
|
6
|
5
|
health-check.yml
|
8030
|
-2
|
148
|
refs/heads/main
|
6dde21cfcbb2a424db0efb8629b4351eb2a43315
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b2a0b35284edd65cdda0501ced15ca388220ddd","after":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1b2a0b35284edd65cdda0501ced15ca388220ddd...6dde21cfcbb2a424db0efb8629b4351eb2a43315","commits":[{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]}],"total_commits":0,"head_commit":{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1864576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-25T19:40:42+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
|
1774444791
|
1774444791
|
0
|
1774441215
|
1774444791
|
|
|
0
|
Edit
Delete
|
|
8106
|
Stabilize local deployment and tenant-safe auth fl Stabilize local deployment and tenant-safe auth flows...
|
6
|
5
|
health-check.yml
|
8031
|
-2
|
148
|
refs/heads/main
|
6dde21cfcbb2a424db0efb8629b4351eb2a43315
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b2a0b35284edd65cdda0501ced15ca388220ddd","after":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1b2a0b35284edd65cdda0501ced15ca388220ddd...6dde21cfcbb2a424db0efb8629b4351eb2a43315","commits":[{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]}],"total_commits":0,"head_commit":{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1864576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-25T19:40:42+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
|
1774444793
|
1774444793
|
0
|
1774441515
|
1774444793
|
|
|
0
|
Edit
Delete
|
|
8107
|
Stabilize local deployment and tenant-safe auth fl Stabilize local deployment and tenant-safe auth flows...
|
6
|
5
|
health-check.yml
|
8032
|
-2
|
148
|
refs/heads/main
|
6dde21cfcbb2a424db0efb8629b4351eb2a43315
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b2a0b35284edd65cdda0501ced15ca388220ddd","after":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1b2a0b35284edd65cdda0501ced15ca388220ddd...6dde21cfcbb2a424db0efb8629b4351eb2a43315","commits":[{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]}],"total_commits":0,"head_commit":{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1864576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-25T19:40:42+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
|
1774444795
|
1774444795
|
0
|
1774441815
|
1774444795
|
|
|
0
|
Edit
Delete
|
|
8108
|
Stabilize local deployment and tenant-safe auth fl Stabilize local deployment and tenant-safe auth flows...
|
6
|
5
|
health-check.yml
|
8033
|
-2
|
148
|
refs/heads/main
|
6dde21cfcbb2a424db0efb8629b4351eb2a43315
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b2a0b35284edd65cdda0501ced15ca388220ddd","after":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1b2a0b35284edd65cdda0501ced15ca388220ddd...6dde21cfcbb2a424db0efb8629b4351eb2a43315","commits":[{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]}],"total_commits":0,"head_commit":{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1864576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-25T19:40:42+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
|
1774444797
|
1774444797
|
0
|
1774442115
|
1774444797
|
|
|
0
|
Edit
Delete
|
|
8109
|
Stabilize local deployment and tenant-safe auth fl Stabilize local deployment and tenant-safe auth flows...
|
6
|
5
|
health-check.yml
|
8034
|
-2
|
148
|
refs/heads/main
|
6dde21cfcbb2a424db0efb8629b4351eb2a43315
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b2a0b35284edd65cdda0501ced15ca388220ddd","after":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1b2a0b35284edd65cdda0501ced15ca388220ddd...6dde21cfcbb2a424db0efb8629b4351eb2a43315","commits":[{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]}],"total_commits":0,"head_commit":{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1864576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-25T19:40:42+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
|
1774444799
|
1774444799
|
0
|
1774442415
|
1774444799
|
|
|
0
|
Edit
Delete
|
|
8110
|
Stabilize local deployment and tenant-safe auth fl Stabilize local deployment and tenant-safe auth flows...
|
6
|
5
|
health-check.yml
|
8035
|
-2
|
148
|
refs/heads/main
|
6dde21cfcbb2a424db0efb8629b4351eb2a43315
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b2a0b35284edd65cdda0501ced15ca388220ddd","after":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1b2a0b35284edd65cdda0501ced15ca388220ddd...6dde21cfcbb2a424db0efb8629b4351eb2a43315","commits":[{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]}],"total_commits":0,"head_commit":{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1864576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-25T19:40:42+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
|
1774444801
|
1774444801
|
0
|
1774442715
|
1774444801
|
|
|
0
|
Edit
Delete
|
|
8111
|
Stabilize local deployment and tenant-safe auth fl Stabilize local deployment and tenant-safe auth flows...
|
6
|
5
|
health-check.yml
|
8036
|
-2
|
148
|
refs/heads/main
|
6dde21cfcbb2a424db0efb8629b4351eb2a43315
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b2a0b35284edd65cdda0501ced15ca388220ddd","after":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1b2a0b35284edd65cdda0501ced15ca388220ddd...6dde21cfcbb2a424db0efb8629b4351eb2a43315","commits":[{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]}],"total_commits":0,"head_commit":{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1864576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-25T19:40:42+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
|
1774444803
|
1774444803
|
0
|
1774443015
|
1774444803
|
|
|
0
|
Edit
Delete
|
|
8112
|
Stabilize local deployment and tenant-safe auth fl Stabilize local deployment and tenant-safe auth flows...
|
6
|
5
|
health-check.yml
|
8037
|
-2
|
148
|
refs/heads/main
|
6dde21cfcbb2a424db0efb8629b4351eb2a43315
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b2a0b35284edd65cdda0501ced15ca388220ddd","after":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1b2a0b35284edd65cdda0501ced15ca388220ddd...6dde21cfcbb2a424db0efb8629b4351eb2a43315","commits":[{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]}],"total_commits":0,"head_commit":{"id":"6dde21cfcbb2a424db0efb8629b4351eb2a43315","message":"Stabilize local deployment and tenant-safe auth flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6dde21cfcbb2a424db0efb8629b4351eb2a43315","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-25T20:04:29+08:00","added":["create-extension.sh","frontend/public/icons/icon-192.png","frontend/public/icons/icon-512.png","frontend/public/icons/icon-maskable-192.png","frontend/public/icons/icon-maskable-512.png","install-pgvector.sh","postgresql-custom.conf","scripts/sync-local-env.sh","start-docker-services.js"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/seed.ts","backend/prisma/seeds/01-base.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/shared/middleware/__tests__/tenant.middleware.test.ts","backend/src/shared/middleware/tenant.middleware.ts","docker-compose.yml","frontend/index.html","frontend/src/api/modules/auth.ts","frontend/src/views/Login.vue","pnpm-lock.yaml","scripts/init-db.sh","scripts/one-click-dev.sh","scripts/start-all.sh","scripts/start-dev.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1864576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-25T19:40:42+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
|
1774444805
|
1774444805
|
0
|
1774443315
|
1774444805
|
|
|
0
|
Edit
Delete
|
|
53
|
Update predictive and RFM modules
|
6
|
5
|
ci.yml
|
14
|
5
|
0
|
refs/heads/main
|
7145a8553a880d8a94356baf7bcb4e2df4631e61
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c8adeb7142f7f1b57a10bfffc3de856524997227","after":"7145a8553a880d8a94356baf7bcb4e2df4631e61","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c8adeb7142f7f1b57a10bfffc3de856524997227...7145a8553a880d8a94356baf7bcb4e2df4631e61","commits":[{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts"]},{"id":"0f2d9c3835013e4d3629614ecd18a44606763f27","message":"Review analytics module updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0f2d9c3835013e4d3629614ecd18a44606763f27","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-11T00:49:16+08:00","added":["backend/src/modules/campaign-analytics/campaign-analytics.controller.ts","backend/src/modules/campaign-analytics/campaign-analytics.docs.ts","backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/campaign-analytics/campaign-analytics.service.ts","backend/src/modules/channel-analytics/channel-analytics.controller.ts","backend/src/modules/channel-analytics/channel-analytics.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channel-analytics/channel-analytics.service.ts","backend/src/modules/cohort-analysis/cohort-analysis.controller.ts","backend/src/modules/cohort-analysis/cohort-analysis.docs.ts","backend/src/modules/cohort-analysis/cohort-analysis.schema.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.controller.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.docs.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.schema.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.ts","backend/src/modules/cost-allocation/cost-allocation.controller.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cost-allocation/cost-allocation.schema.ts","backend/src/modules/cost-allocation/cost-allocation.service.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.controller.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.docs.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.schema.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.controller.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.docs.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.schema.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.controller.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.docs.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.schema.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.ts","backend/src/modules/customer-ltv/customer-ltv.controller.ts","backend/src/modules/customer-ltv/customer-ltv.docs.ts","backend/src/modules/customer-ltv/customer-ltv.schema.ts","backend/src/modules/customer-ltv/customer-ltv.service.ts","backend/src/modules/dictionaries/dictionary.docs.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.docs.ts","backend/src/modules/dimension-transform/dimension-transform.schema.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.controller.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.docs.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.schema.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.ts","backend/src/modules/mdm/mdm.docs.ts","backend/src/modules/menus/menu.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.controller.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.schema.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.docs.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.schema.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.controller.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.docs.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.schema.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.ts","backend/src/modules/positions/positions.controller.ts","backend/src/modules/positions/positions.docs.ts","backend/src/modules/positions/positions.schema.ts","backend/src/modules/positions/positions.service.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.controller.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime-trigger/realtime-trigger.schema.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts","backend/src/modules/supplier-payments/supplier-payments.controller.ts","backend/src/modules/supplier-payments/supplier-payments.docs.ts","backend/src/modules/supplier-payments/supplier-payments.schema.ts","backend/src/modules/supplier-payments/supplier-payments.service.ts"],"removed":[],"modified":["docs/ACTION-PLAN-2026.md","docs/ROADMAP_2026_Q1.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"9675324a5bbabd31646b05a46b9ccea1f19bbfb9","message":"Review backend and docs updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9675324a5bbabd31646b05a46b9ccea1f19bbfb9","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-11T00:29:08+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/campaign-drafts/campaign-draft.service.ts","backend/src/modules/devices/device.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/inventory/services/inventory-reservation.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/web-tracking/web-tracking.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","message":"Review recent docs and service edits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","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-11T00:16:16+08:00","added":[],"removed":[],"modified":["backend/src/modules/campaigns/campaign-effectiveness.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","message":"Summarize backend doc updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","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-11T00:12:40+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/crm-activities/crm-activity.service.ts","backend/src/modules/im/im.service.ts","backend/src/modules/inventory/services/inventory-export.service.ts","backend/src/modules/knowledge-capture/knowledge-ai.service.ts","backend/src/modules/livestream/livestream.service.ts","backend/src/modules/marketing-automation/workflow-action.service.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/pm/pm.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/rma/rma.compat.routes.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]}],"total_commits":0,"head_commit":{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.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":31473,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-24T00:01:59+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
|
19
|
1771862759
|
1771862764
|
0
|
1771862651
|
1771862764
|
NULL
|
|
0
|
Edit
Delete
|
|
54
|
Update predictive and RFM modules
|
6
|
5
|
test-comprehensive.yml
|
15
|
5
|
0
|
refs/heads/main
|
7145a8553a880d8a94356baf7bcb4e2df4631e61
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c8adeb7142f7f1b57a10bfffc3de856524997227","after":"7145a8553a880d8a94356baf7bcb4e2df4631e61","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c8adeb7142f7f1b57a10bfffc3de856524997227...7145a8553a880d8a94356baf7bcb4e2df4631e61","commits":[{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts"]},{"id":"0f2d9c3835013e4d3629614ecd18a44606763f27","message":"Review analytics module updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0f2d9c3835013e4d3629614ecd18a44606763f27","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-11T00:49:16+08:00","added":["backend/src/modules/campaign-analytics/campaign-analytics.controller.ts","backend/src/modules/campaign-analytics/campaign-analytics.docs.ts","backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/campaign-analytics/campaign-analytics.service.ts","backend/src/modules/channel-analytics/channel-analytics.controller.ts","backend/src/modules/channel-analytics/channel-analytics.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channel-analytics/channel-analytics.service.ts","backend/src/modules/cohort-analysis/cohort-analysis.controller.ts","backend/src/modules/cohort-analysis/cohort-analysis.docs.ts","backend/src/modules/cohort-analysis/cohort-analysis.schema.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.controller.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.docs.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.schema.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.ts","backend/src/modules/cost-allocation/cost-allocation.controller.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cost-allocation/cost-allocation.schema.ts","backend/src/modules/cost-allocation/cost-allocation.service.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.controller.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.docs.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.schema.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.controller.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.docs.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.schema.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.controller.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.docs.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.schema.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.ts","backend/src/modules/customer-ltv/customer-ltv.controller.ts","backend/src/modules/customer-ltv/customer-ltv.docs.ts","backend/src/modules/customer-ltv/customer-ltv.schema.ts","backend/src/modules/customer-ltv/customer-ltv.service.ts","backend/src/modules/dictionaries/dictionary.docs.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.docs.ts","backend/src/modules/dimension-transform/dimension-transform.schema.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.controller.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.docs.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.schema.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.ts","backend/src/modules/mdm/mdm.docs.ts","backend/src/modules/menus/menu.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.controller.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.schema.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.docs.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.schema.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.controller.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.docs.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.schema.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.ts","backend/src/modules/positions/positions.controller.ts","backend/src/modules/positions/positions.docs.ts","backend/src/modules/positions/positions.schema.ts","backend/src/modules/positions/positions.service.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.controller.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime-trigger/realtime-trigger.schema.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts","backend/src/modules/supplier-payments/supplier-payments.controller.ts","backend/src/modules/supplier-payments/supplier-payments.docs.ts","backend/src/modules/supplier-payments/supplier-payments.schema.ts","backend/src/modules/supplier-payments/supplier-payments.service.ts"],"removed":[],"modified":["docs/ACTION-PLAN-2026.md","docs/ROADMAP_2026_Q1.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"9675324a5bbabd31646b05a46b9ccea1f19bbfb9","message":"Review backend and docs updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9675324a5bbabd31646b05a46b9ccea1f19bbfb9","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-11T00:29:08+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/campaign-drafts/campaign-draft.service.ts","backend/src/modules/devices/device.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/inventory/services/inventory-reservation.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/web-tracking/web-tracking.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","message":"Review recent docs and service edits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","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-11T00:16:16+08:00","added":[],"removed":[],"modified":["backend/src/modules/campaigns/campaign-effectiveness.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","message":"Summarize backend doc updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","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-11T00:12:40+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/crm-activities/crm-activity.service.ts","backend/src/modules/im/im.service.ts","backend/src/modules/inventory/services/inventory-export.service.ts","backend/src/modules/knowledge-capture/knowledge-ai.service.ts","backend/src/modules/livestream/livestream.service.ts","backend/src/modules/marketing-automation/workflow-action.service.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/pm/pm.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/rma/rma.compat.routes.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]}],"total_commits":0,"head_commit":{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.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":31473,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-24T00:01:59+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
|
19
|
1771862764
|
1771862765
|
0
|
1771862652
|
1771862765
|
NULL
|
|
0
|
Edit
Delete
|
|
55
|
Update predictive and RFM modules
|
6
|
5
|
health-check.yml
|
16
|
-2
|
11
|
refs/heads/main
|
7145a8553a880d8a94356baf7bcb4e2df4631e61
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c8adeb7142f7f1b57a10bfffc3de856524997227","after":"7145a8553a880d8a94356baf7bcb4e2df4631e61","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c8adeb7142f7f1b57a10bfffc3de856524997227...7145a8553a880d8a94356baf7bcb4e2df4631e61","commits":[{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts"]},{"id":"0f2d9c3835013e4d3629614ecd18a44606763f27","message":"Review analytics module updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0f2d9c3835013e4d3629614ecd18a44606763f27","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-11T00:49:16+08:00","added":["backend/src/modules/campaign-analytics/campaign-analytics.controller.ts","backend/src/modules/campaign-analytics/campaign-analytics.docs.ts","backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/campaign-analytics/campaign-analytics.service.ts","backend/src/modules/channel-analytics/channel-analytics.controller.ts","backend/src/modules/channel-analytics/channel-analytics.docs.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channel-analytics/channel-analytics.service.ts","backend/src/modules/cohort-analysis/cohort-analysis.controller.ts","backend/src/modules/cohort-analysis/cohort-analysis.docs.ts","backend/src/modules/cohort-analysis/cohort-analysis.schema.ts","backend/src/modules/cohort-analysis/cohort-analysis.service.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.controller.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.docs.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.schema.ts","backend/src/modules/consumer-behavior-analytics/consumer-behavior-analytics.service.ts","backend/src/modules/cost-allocation/cost-allocation.controller.ts","backend/src/modules/cost-allocation/cost-allocation.docs.ts","backend/src/modules/cost-allocation/cost-allocation.schema.ts","backend/src/modules/cost-allocation/cost-allocation.service.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.controller.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.docs.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.schema.ts","backend/src/modules/cross-domain-funnel/cross-domain-funnel.service.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.controller.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.docs.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.schema.ts","backend/src/modules/customer-journey-orchestration/customer-journey-orchestration.service.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.controller.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.docs.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.schema.ts","backend/src/modules/customer-lifecycle-value/customer-lifecycle-value.service.ts","backend/src/modules/customer-ltv/customer-ltv.controller.ts","backend/src/modules/customer-ltv/customer-ltv.docs.ts","backend/src/modules/customer-ltv/customer-ltv.schema.ts","backend/src/modules/customer-ltv/customer-ltv.service.ts","backend/src/modules/dictionaries/dictionary.docs.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.docs.ts","backend/src/modules/dimension-transform/dimension-transform.schema.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.controller.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.docs.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.schema.ts","backend/src/modules/marketing-effectiveness/marketing-effectiveness.service.ts","backend/src/modules/mdm/mdm.docs.ts","backend/src/modules/menus/menu.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.controller.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.schema.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.docs.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.schema.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.service.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.controller.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.docs.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.schema.ts","backend/src/modules/omnichannel-touchpoints/omnichannel-touchpoints.service.ts","backend/src/modules/positions/positions.controller.ts","backend/src/modules/positions/positions.docs.ts","backend/src/modules/positions/positions.schema.ts","backend/src/modules/positions/positions.service.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.controller.ts","backend/src/modules/realtime-trigger/realtime-trigger.docs.ts","backend/src/modules/realtime-trigger/realtime-trigger.schema.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.ts","backend/src/modules/supplier-payments/supplier-payments.controller.ts","backend/src/modules/supplier-payments/supplier-payments.docs.ts","backend/src/modules/supplier-payments/supplier-payments.schema.ts","backend/src/modules/supplier-payments/supplier-payments.service.ts"],"removed":[],"modified":["docs/ACTION-PLAN-2026.md","docs/ROADMAP_2026_Q1.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"9675324a5bbabd31646b05a46b9ccea1f19bbfb9","message":"Review backend and docs updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9675324a5bbabd31646b05a46b9ccea1f19bbfb9","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-11T00:29:08+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/campaign-drafts/campaign-draft.service.ts","backend/src/modules/devices/device.service.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/inventory/services/inventory-reservation.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/web-tracking/web-tracking.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","message":"Review recent docs and service edits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/eb3fcc5f8f454b79674c60ad457e4d5ecd3ee310","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-11T00:16:16+08:00","added":[],"removed":[],"modified":["backend/src/modules/campaigns/campaign-effectiveness.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]},{"id":"2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","message":"Summarize backend doc updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2d6cf596bcfe9ab7bfa9a6d26a1d0572fef6cc8c","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-11T00:12:40+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/community-fission/community-fission.service.ts","backend/src/modules/crm-activities/crm-activity.service.ts","backend/src/modules/im/im.service.ts","backend/src/modules/inventory/services/inventory-export.service.ts","backend/src/modules/knowledge-capture/knowledge-ai.service.ts","backend/src/modules/livestream/livestream.service.ts","backend/src/modules/marketing-automation/workflow-action.service.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/pm/pm.service.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/rma/rma.compat.routes.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","docs/ACQUISITION-DOMAIN-ANALYSIS.md","docs/ACQUISITION-INNOVATION-TRANSFORMATION-PLAN.md","docs/ACTION-PLAN-2026.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/ALIGNMENT_REPORT.md","docs/API_REFACTORING_PLAN.md","docs/AUTO-FIX-REPORT.md","docs/BACKEND-QUALITY-AUDIT-REPORT.md","docs/BATCH_OPERATIONS_AUDIT.md","docs/BUSINESS-DOMAIN-ANALYSIS.md","docs/DATABASE_MIGRATION_GUIDE.md","docs/DEPLOYMENT_COMPLETE.md","docs/DUPLICATION_ANALYSIS_REPORT.md","docs/E2E-TEST-STRATEGY.md","docs/EVENT_STREAM_OPTIMIZATION_REPORT.md","docs/FRONTEND-BACKEND-GAP-ANALYSIS.md","docs/FRONTEND-UI-TEST-SPECIFICATION.md","docs/FRONTEND_ANALYSIS_20260102.md","docs/FRONTEND_ARCHITECTURE_ANALYSIS.md","docs/FULLSTACK-MATCHER-ANALYSIS.md","docs/IMPLEMENTATION-GAP-ANALYSIS.md","docs/IMPROVEMENT-PLAN.md","docs/IMPROVEMENTS_SUMMARY_20260102.md","docs/IMPROVEMENT_REPORT_2026-01-02.md","docs/KTV-LOCATION-SELECTION-PRD.md","docs/MARKETING-ARCHITECTURE-INNOVATION.md","docs/MENU-DESIGN-PROPOSAL.md","docs/MENU-STRUCTURE-COMPLETE.md","docs/MOBILE_CHAT_CRM_DEVELOPMENT_PLAN.md","docs/MODULE-STRUCTURE-ANALYSIS.md","docs/OMNICHANNEL-MARKETING-ARCHITECTURE.md","docs/P2-OPTIMIZATION-FINAL-REPORT.md","docs/PERFORMANCE_AUDIT_REPORT.md","docs/PHP-MIGRATION-ANALYSIS.md","docs/PLANNED-ROUTES.md","docs/PRD_巨嗨全域智库_v1.0.md","docs/PRODUCTION_CHECKLIST.md","docs/PROJECT_MODULE_OPTIMIZATION.md","docs/REFACTOR_COMPLETED.md","docs/ROADMAP_2026_Q1.md","docs/SALES-DOMAIN-ANALYSIS.md","docs/SECURITY-AUDIT-REPORT.md","docs/STABILITY-ANALYSIS-REPORT.md","docs/SWOT-ANALYSIS.md","docs/TEST-MATURITY-ASSESSMENT-REPORT.md","docs/TEST_COVERAGE_REPORT.md","docs/TEST_SPECIFICATION_REVIEW.md","docs/WEAKNESS-REMEDIATION-PLAN.md","docs/ZOD_VALIDATION_ENHANCEMENT_REPORT.md","docs/architecture/CAMPAIGNS-TENANT-ID-MIGRATION.md","docs/architecture/CONSISTENCY-CHECKER-COMPLETE.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-PLAN.md","docs/architecture/P0-OUTBOX-IMPLEMENTATION-REPORT.md","docs/architecture/P0-TABLE-PARTITIONING-PLAN.md","docs/architecture/P1-IMPLEMENTATION-PLAN.md","docs/architecture/PHASE_1_FIX_PLAN.md","docs/architecture/REFACTOR-MODULE-LIST-COMPLETE.md","docs/architecture/REFACTOR_IMPLEMENTATION_PLAN.md","docs/architecture/ROI-ANALYSIS-EMERGENCY-FIX.md","docs/architecture/ROI-ANALYSIS-FIX-UPDATED.md","docs/architecture/ROI-ANALYSIS-IMPLEMENTATION.md","docs/architecture/ROI-MENU-RENAME-COMPLETION.md","docs/architecture/ROI-MENU-RENAME-PLAN.md","docs/architecture/ROI-RENAME-SUMMARY.md","docs/architecture/ROUTE-LAYER-REFACTOR-REPORT.md","docs/architecture/SYSTEM-MANAGEMENT-ANALYSIS.md","docs/audits/comprehensive-scan-report-2026-01-08.md","docs/batch-refactor-plan.md","docs/batch-refactor-summary-phase1.md","docs/deployment-checklist.md","docs/guides/TESTING-SUMMARY.md","docs/guides/TODO-CLEANUP-PLAN.md","docs/guides/TODO-GITHUB-ISSUES.md","docs/guides/TYPESCRIPT-ERRORS-FIX-PLAN.md","docs/kafka-event-improvement-plan.md","docs/menus/MENU-ALIGNMENT-FINAL-REPORT.md","docs/menus/MENU-FIX-COMPLETION-REPORT.md","docs/menus/MENU-FIX-SUMMARY.md","docs/menus/MENU-MIGRATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-ANALYSIS.md","docs/menus/MENU-PERMISSIONS-IMPLEMENTATION-GUIDE.md","docs/menus/MENU-PERMISSIONS-QUICK-REFERENCE.md","docs/menus/MENU-PERMISSIONS-SUMMARY.md","docs/menus/MENU-STRUCTURE-V2.2.md","docs/menus/MENU-STRUCTURE-VISUAL.md","docs/menus/MENU-UPDATE-V2.2-FINAL.md","docs/pinia-persistence-verification.md","docs/refactor-final-report.md","docs/refactor-plan-partner-customers.md","docs/refactor-progress.md","docs/refactor-session-summary-2026-01-06.md","docs/refactor-summary-partner-customers.md","docs/refactor-summary.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md","docs/reports/CAMPAIGNS-MIGRATION-REPORT-20260110.md","docs/reports/CHANGELOG_ROUTER_FIX.md","docs/reports/CODE_AUDIT_REPORT.md","docs/reports/CODE_AUDIT_REPORT_2026-01-24.md","docs/reports/CODE_FIX_REPORT_2026-01-24.md","docs/reports/CONFIG_ANALYSIS_REPORT.md","docs/reports/DATABASE-INDEX-MIGRATION-REPORT.md","docs/reports/DATABASE-PARTITIONING-MERGE-SUMMARY.md","docs/reports/DEPENDENCY_AUDIT_REPORT.md","docs/reports/FRONTEND_AUDIT_REPORT.md","docs/reports/FULLSTACK-GAP-ANALYSIS.md","docs/reports/GAP_ANALYSIS_REPORT.md","docs/reports/IMMEDIATE-ACTION-SUMMARY.md","docs/reports/OPTIMIZATION-REPORT.md","docs/reports/P0-TASKS-COMPLETION-REPORT.md","docs/reports/P0-VERIFICATION-CHECKLIST.md","docs/reports/P1-SCHEMA-VALIDATION-REPORT.md","docs/reports/P1-SENTRY-INTEGRATION-REPORT.md","docs/reports/P2_OPTIMIZATION_REPORT.md","docs/reports/PERFORMANCE_ANALYSIS_REPORT.md","docs/reports/PERFORMANCE_OPTIMIZATION_REPORT.md","docs/reports/PHASE_0_COMPLETION_REPORT.md","docs/reports/PHASE_1_STATUS_REPORT.md","docs/reports/PRISMA_GAP_ANALYSIS.md","docs/reports/PROJECT_ANALYSIS_REPORT.md","docs/reports/PROJECT_COMPREHENSIVE_ANALYSIS_2026-01-24.md","docs/reports/REALITY_CHECK_20251222.md","docs/reports/ROUTER_WHITE_SCREEN_FINAL_FIX.md","docs/reports/SECURITY_AUDIT_REPORT_2026-01-24.md","docs/reports/TASK_COMPLETION_SUMMARY.md","docs/reports/TEST-CLEANUP-FIX-REPORT.md","docs/reports/TEST-EXECUTION-REPORT.md","docs/reports/TEST-FIXES-SUMMARY.md","docs/reports/TEST-INFRASTRUCTURE-COMPLETE.md","docs/reports/TEST_REPORT.md","docs/reports/TODO-ANALYSIS-REPORT.md","docs/testing/TEST_IMPROVEMENT_PLAN.md","docs/zod-fix-final-report.md","docs/zod-fix-verification.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/全域收敛状态总览_2026-02-10.md"]}],"total_commits":0,"head_commit":{"id":"7145a8553a880d8a94356baf7bcb4e2df4631e61","message":"Update predictive and RFM modules\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7145a8553a880d8a94356baf7bcb4e2df4631e61","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-11T01:01:39+08:00","added":[],"removed":[],"modified":["backend/src/modules/predictive-analytics/predictive-analytics.compat.routes.ts","backend/src/modules/predictive-analytics/predictive-analytics.controller.ts","backend/src/modules/predictive-analytics/predictive-analytics.docs.ts","backend/src/modules/predictive-analytics/predictive-analytics.schema.ts","backend/src/modules/predictive-analytics/predictive-analytics.service.ts","backend/src/modules/rfm-analysis/rfm-analysis.compat.routes.ts","backend/src/modules/rfm-analysis/rfm-analysis.controller.ts","backend/src/modules/rfm-analysis/rfm-analysis.docs.ts","backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/modules/rfm-analysis/rfm-analysis.service.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":31473,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-24T00:01:59+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
|
1771862766
|
1771862767
|
0
|
1771862710
|
1771862767
|
NULL
|
|
0
|
Edit
Delete
|
|
10419
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
e2e-tests.yml
|
10343
|
5
|
0
|
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"}}...
|
push
|
2
|
20
|
1775066752
|
1775067060
|
0
|
1775066750
|
1775067155
|
|
|
0
|
Edit
Delete
|
|
10420
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
test-pipeline.yml
|
10344
|
5
|
0
|
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"}}...
|
push
|
2
|
68
|
1775067061
|
1775067122
|
0
|
1775066751
|
1775068309
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
10421
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10345
|
-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
|
1775067123
|
1775067124
|
0
|
1775067018
|
1775067124
|
|
|
0
|
Edit
Delete
|
|
10422
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
test-report.yml
|
10346
|
5
|
0
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-02T01:59:43+08:00","updated_at":"2026-04-02T01:59:43+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":10419,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/10419","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/10419","display_title":"feat(statuses): add 61 missing enum definitions to statuses.ts","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":10343,"head_sha":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5197876,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":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-04-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-02T02:05:52+08:00","completed_at":"2026-04-02T02:11:00+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5197876,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":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-04-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1775067156
|
1775067187
|
0
|
1775067061
|
1775067231
|
|
|
0
|
Edit
Delete
|
|
10423
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
deploy.yml
|
10347
|
5
|
0
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-02T01:59:43+08:00","updated_at":"2026-04-02T01:59:43+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":10420,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/10420","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/10420","display_title":"feat(statuses): add 61 missing enum definitions to statuses.ts","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":10344,"head_sha":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5197876,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":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-04-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-02T02:11:01+08:00","completed_at":"2026-04-02T02:12:02+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5197876,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":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-04-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
21
|
1775067191
|
1775067279
|
0
|
1775067123
|
1775067280
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
10424
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
test-report.yml
|
10348
|
5
|
0
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-02T01:59:43+08:00","updated_at":"2026-04-02T01:59:43+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":10419,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/10419","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/10419","display_title":"feat(statuses): add 61 missing enum definitions to statuses.ts","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":10343,"head_sha":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5197876,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":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-04-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-02T02:05:52+08:00","completed_at":"2026-04-02T02:11:00+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5197876,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":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-04-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1775067197
|
1775067228
|
0
|
1775067156
|
1775067277
|
|
|
0
|
Edit
Delete
|
|
10425
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
deploy.yml
|
10349
|
5
|
0
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-02T01:59:43+08:00","updated_at":"2026-04-02T01:59:43+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":10420,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/10420","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/10420","display_title":"feat(statuses): add 61 missing enum definitions to statuses.ts","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":10344,"head_sha":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5197876,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":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-04-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-02T02:11:01+08:00","completed_at":"2026-04-02T02:12:02+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5197876,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":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-04-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
17
|
1775067281
|
1775068309
|
0
|
1775067280
|
1775068310
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
10426
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10350
|
-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
|
1775068310
|
1775068311
|
0
|
1775067318
|
1775068311
|
|
|
0
|
Edit
Delete
|
|
10427
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10351
|
-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
|
1775068312
|
1775068313
|
0
|
1775067618
|
1775068313
|
|
|
0
|
Edit
Delete
|
|
10428
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10352
|
-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
|
1775068314
|
1775068315
|
0
|
1775067918
|
1775068315
|
|
|
0
|
Edit
Delete
|
|
10429
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10353
|
-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
|
1775068316
|
1775068317
|
0
|
1775068218
|
1775068317
|
|
|
0
|
Edit
Delete
|
|
10430
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
deploy.yml
|
10354
|
5
|
0
|
refs/heads/main
|
7212eb23c82b2ecae9ea1f22fa928fc6382f842d
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-02T01:59:43+08:00","updated_at":"2026-04-02T01:59:43+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":10420,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/10420","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/10420","display_title":"feat(statuses): add 61 missing enum definitions to statuses.ts","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":10344,"head_sha":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5197876,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":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-04-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-02T02:11:01+08:00","completed_at":"2026-04-02T02:12:02+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5197876,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":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-04-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
40
|
1775068318
|
1775069353
|
0
|
1775068310
|
1775069353
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
10431
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10355
|
-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
|
1775069353
|
1775069354
|
0
|
1775068518
|
1775069354
|
|
|
0
|
Edit
Delete
|
|
10432
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10356
|
-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
|
1775069355
|
1775069356
|
0
|
1775068818
|
1775069356
|
|
|
0
|
Edit
Delete
|
|
10433
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10357
|
-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
|
1775069357
|
1775069358
|
0
|
1775069118
|
1775069358
|
|
|
0
|
Edit
Delete
|
|
10434
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10358
|
-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
|
1775069419
|
1775069420
|
0
|
1775069418
|
1775069420
|
|
|
0
|
Edit
Delete
|
|
10435
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10359
|
-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
|
1775069719
|
1775069720
|
0
|
1775069718
|
1775069720
|
|
|
0
|
Edit
Delete
|
|
10436
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10360
|
-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
|
1775070019
|
1775070020
|
0
|
1775070018
|
1775070020
|
|
|
0
|
Edit
Delete
|
|
10437
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10361
|
-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
|
1775070319
|
1775070320
|
0
|
1775070318
|
1775070320
|
|
|
0
|
Edit
Delete
|
|
10438
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10362
|
-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
|
1775070619
|
1775070620
|
0
|
1775070618
|
1775070620
|
|
|
0
|
Edit
Delete
|
|
10439
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10363
|
-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
|
1775070919
|
1775070920
|
0
|
1775070918
|
1775070920
|
|
|
0
|
Edit
Delete
|
|
10440
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10364
|
-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
|
1775071219
|
1775071220
|
0
|
1775071218
|
1775071220
|
|
|
0
|
Edit
Delete
|
|
10441
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10365
|
-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
|
1775071519
|
1775071520
|
0
|
1775071518
|
1775071520
|
|
|
0
|
Edit
Delete
|
|
10442
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10366
|
-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
|
1775071819
|
1775071820
|
0
|
1775071818
|
1775071820
|
|
|
0
|
Edit
Delete
|
|
10443
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10367
|
-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
|
1775072119
|
1775072120
|
0
|
1775072118
|
1775072120
|
|
|
0
|
Edit
Delete
|
|
10444
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10368
|
-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
|
1775072419
|
1775072420
|
0
|
1775072418
|
1775072420
|
|
|
0
|
Edit
Delete
|
|
10445
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10369
|
-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
|
1775072719
|
1775072720
|
0
|
1775072718
|
1775072720
|
|
|
0
|
Edit
Delete
|
|
10446
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10370
|
-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
|
1775073019
|
1775073020
|
0
|
1775073018
|
1775073020
|
|
|
0
|
Edit
Delete
|
|
10447
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10371
|
-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
|
1775073319
|
1775073320
|
0
|
1775073318
|
1775073320
|
|
|
0
|
Edit
Delete
|
|
10448
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10372
|
-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
|
1775073619
|
1775073620
|
0
|
1775073618
|
1775073620
|
|
|
0
|
Edit
Delete
|
|
10449
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10373
|
-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
|
1775073919
|
1775073920
|
0
|
1775073918
|
1775073920
|
|
|
0
|
Edit
Delete
|
|
10450
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10374
|
-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
|
1775074219
|
1775074220
|
0
|
1775074218
|
1775074220
|
|
|
0
|
Edit
Delete
|
|
10451
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10375
|
-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
|
1775074519
|
1775074520
|
0
|
1775074518
|
1775074520
|
|
|
0
|
Edit
Delete
|
|
10452
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10376
|
-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
|
1775074819
|
1775074820
|
0
|
1775074818
|
1775074820
|
|
|
0
|
Edit
Delete
|
|
10453
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10377
|
-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
|
1775075119
|
1775075120
|
0
|
1775075118
|
1775075120
|
|
|
0
|
Edit
Delete
|
|
10454
|
feat(statuses): add 61 missing enum definitions to feat(statuses): add 61 missing enum definitions to statuses.ts...
|
6
|
5
|
health-check.yml
|
10378
|
-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
|
1775075419
|
1775075420
|
0
|
1775075418
|
1775075420
|
|
|
0
|
Edit
Delete
|