|
8392
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8317
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774518639
|
1774518639
|
0
|
1774518636
|
1774518639
|
|
|
0
|
Edit
Delete
|
|
8393
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8318
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774518937
|
1774518938
|
0
|
1774518936
|
1774518938
|
|
|
0
|
Edit
Delete
|
|
8394
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8319
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774519251
|
1774519252
|
0
|
1774519250
|
1774519252
|
|
|
0
|
Edit
Delete
|
|
8395
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8320
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774519551
|
1774519551
|
0
|
1774519550
|
1774519551
|
|
|
0
|
Edit
Delete
|
|
8396
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8321
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774519851
|
1774519852
|
0
|
1774519850
|
1774519852
|
|
|
0
|
Edit
Delete
|
|
8397
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8322
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774520151
|
1774520152
|
0
|
1774520150
|
1774520152
|
|
|
0
|
Edit
Delete
|
|
8398
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8323
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774520451
|
1774520452
|
0
|
1774520450
|
1774520452
|
|
|
0
|
Edit
Delete
|
|
8399
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8324
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774520751
|
1774520752
|
0
|
1774520750
|
1774520752
|
|
|
0
|
Edit
Delete
|
|
8400
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8325
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774521051
|
1774521052
|
0
|
1774521050
|
1774521052
|
|
|
0
|
Edit
Delete
|
|
8401
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8326
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774521351
|
1774521351
|
0
|
1774521350
|
1774521351
|
|
|
0
|
Edit
Delete
|
|
8402
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8327
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774521651
|
1774521652
|
0
|
1774521650
|
1774521652
|
|
|
0
|
Edit
Delete
|
|
8403
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8328
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774521951
|
1774521952
|
0
|
1774521950
|
1774521952
|
|
|
0
|
Edit
Delete
|
|
8404
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8329
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774522251
|
1774522252
|
0
|
1774522250
|
1774522252
|
|
|
0
|
Edit
Delete
|
|
8405
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8330
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774522551
|
1774522551
|
0
|
1774522550
|
1774522551
|
|
|
0
|
Edit
Delete
|
|
8406
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8331
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774522851
|
1774522852
|
0
|
1774522850
|
1774522852
|
|
|
0
|
Edit
Delete
|
|
8407
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8332
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774523151
|
1774523152
|
0
|
1774523150
|
1774523152
|
|
|
0
|
Edit
Delete
|
|
8408
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8333
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774523451
|
1774523452
|
0
|
1774523450
|
1774523452
|
|
|
0
|
Edit
Delete
|
|
8409
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8334
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774523751
|
1774523752
|
0
|
1774523750
|
1774523752
|
|
|
0
|
Edit
Delete
|
|
8410
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8335
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774524051
|
1774524052
|
0
|
1774524050
|
1774524052
|
|
|
0
|
Edit
Delete
|
|
8411
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8336
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774524351
|
1774524351
|
0
|
1774524350
|
1774524351
|
|
|
0
|
Edit
Delete
|
|
8412
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8337
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774524651
|
1774524652
|
0
|
1774524650
|
1774524652
|
|
|
0
|
Edit
Delete
|
|
8413
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8338
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774524951
|
1774524951
|
0
|
1774524950
|
1774524951
|
|
|
0
|
Edit
Delete
|
|
8414
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8339
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774525251
|
1774525252
|
0
|
1774525250
|
1774525252
|
|
|
0
|
Edit
Delete
|
|
8415
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8340
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774525551
|
1774525551
|
0
|
1774525550
|
1774525551
|
|
|
0
|
Edit
Delete
|
|
8416
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8341
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774525851
|
1774525852
|
0
|
1774525850
|
1774525852
|
|
|
0
|
Edit
Delete
|
|
8417
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8342
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774526151
|
1774526152
|
0
|
1774526150
|
1774526152
|
|
|
0
|
Edit
Delete
|
|
8418
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8343
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774526451
|
1774526452
|
0
|
1774526450
|
1774526452
|
|
|
0
|
Edit
Delete
|
|
8419
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8344
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774526751
|
1774526752
|
0
|
1774526750
|
1774526752
|
|
|
0
|
Edit
Delete
|
|
8420
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8345
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774527051
|
1774527052
|
0
|
1774527050
|
1774527052
|
|
|
0
|
Edit
Delete
|
|
8421
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8346
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774527351
|
1774527352
|
0
|
1774527350
|
1774527352
|
|
|
0
|
Edit
Delete
|
|
8422
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8347
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774527651
|
1774527652
|
0
|
1774527650
|
1774527652
|
|
|
0
|
Edit
Delete
|
|
8423
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8348
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774527951
|
1774527952
|
0
|
1774527950
|
1774527952
|
|
|
0
|
Edit
Delete
|
|
8424
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8349
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774528251
|
1774528252
|
0
|
1774528250
|
1774528252
|
|
|
0
|
Edit
Delete
|
|
8425
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8350
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774528551
|
1774528552
|
0
|
1774528550
|
1774528552
|
|
|
0
|
Edit
Delete
|
|
8426
|
Sync deployment and governance docs for access and Sync deployment and governance docs for access and auth fixes...
|
6
|
5
|
health-check.yml
|
8351
|
-2
|
160
|
refs/heads/main
|
0b85dd84d5debc36f158918b188cde8b6305035f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18d5b913e02e9d72301206688cfee01e40b9d2cd","after":"0b85dd84d5debc36f158918b188cde8b6305035f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/18d5b913e02e9d72301206688cfee01e40b9d2cd...0b85dd84d5debc36f158918b188cde8b6305035f","commits":[{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},{"id":"8ac46927734a309774478f9d22341284857450ee","message":"Add direct DB fallback when PgBouncer is unavailable\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8ac46927734a309774478f9d22341284857450ee","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-25T21:23:11+08:00","added":[],"removed":[],"modified":[".env.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","scripts/sync-local-env.sh"]},{"id":"c990ce2927ce2ef10740cc946beba88a085b6bfc","message":"Encode DB credentials in synced local env URLs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c990ce2927ce2ef10740cc946beba88a085b6bfc","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-25T21:19:23+08:00","added":[],"removed":[],"modified":["scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"0b85dd84d5debc36f158918b188cde8b6305035f","message":"Sync deployment and governance docs for access and auth fixes\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0b85dd84d5debc36f158918b188cde8b6305035f","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-26T10:18:03+08:00","added":["docs/operations/admin-menu-permission-runbook.md"],"removed":[],"modified":[".env.production.example","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/service-dashboard/service-dashboard.service.ts","backend/src/modules/sla/sla.service.ts","backend/src/shared/utils/request-helper.ts","deploy/nginx/conf.d/default.conf","deploy/nginx/conf.d/production.conf","docker-compose.prod.yml","docs/governance/baseline-and-experience.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1866193,"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-25T21:09:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774528851
|
1774528852
|
0
|
1774528850
|
1774528852
|
|
|
0
|
Edit
Delete
|
|
7230
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
ci.yml
|
7156
|
5
|
0
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86beff17d922cf15f9ac6e298961a63c92ec85f8","after":"0900b15d607e5c78f97fec16a73357ad4f814390","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/86beff17d922cf15f9ac6e298961a63c92ec85f8...0900b15d607e5c78f97fec16a73357ad4f814390","commits":[{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},{"id":"d896457d1be5c717ded0691d144621b3c521cd35","message":"chore: Phase 0-5 附带修复 — Agent 产生的额外优化\n\n- database.ts: 类型优化\n- main.ts: 路由注册和 schema 转换修复\n- auth.middleware.ts: 类型收紧\n- schema-converter.ts: 冗余移除\n- IMPanel.vue/MessageSearch.vue: 前端组件优化\n- list-cache.service.ts: 新增列表缓存服务\n- 更新审计报告快照\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d896457d1be5c717ded0691d144621b3c521cd35","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:08:14+08:00","added":["backend/src/shared/services/list-cache.service.ts"],"removed":[],"modified":["backend/.env.example","backend/src/config/database.ts","backend/src/main.ts","backend/src/modules/im/im-channel.controller.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/openapi/schema-converter.ts","frontend/package.json","frontend/src/components/business/IMPanel.vue","frontend/src/composables/index.ts","frontend/src/main.ts","frontend/src/stores/auth.test.ts","frontend/src/views/im/components/MessageSearch.vue","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"8d6bbbf7db74cd492873138a576a303da86c39cf","message":"test: Phase 3 — IM 15 测试 + Revenue 13 测试 + ZodEffects 兼容修复\n\n- 新增 tests/api/im.test.ts: 15 用例覆盖会话/消息/参与者/在线状态/未读统计\n- 新增 tests/api/revenue-payment-terms.test.ts: 13 用例覆盖统计/CRUD/批量/事件集成\n- 修复 validation.ts: ZodEffects.prototype 添加 partial/omit/extend 代理\n- 修复 rfm-analysis.schema.ts: .passthrough() 顺序修正\n- 发现: IM 模块需加入 requestCaseConverter 排除列表\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8d6bbbf7db74cd492873138a576a303da86c39cf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:05:53+08:00","added":["backend/tests/api/im.test.ts","backend/tests/api/revenue-payment-terms.test.ts"],"removed":[],"modified":["backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/shared/utils/validation.ts"]},{"id":"5154c3ae921f8ff76d803e3e30208edd8c791d77","message":"test: Phase 3 — Marketing API 集成测试 19 用例 + schema bug 修复\n\n- 新增 tests/api/marketing.test.ts: 19 个测试用例覆盖 CRUD + 状态机 + 多租户隔离\n- 修复 lead-scoring.schema.ts: .transform() 后 .partial() 运行时错误\n- 修复 lead-assignment.schema.ts: 同上\n- 修复 campaign-analytics.schema.ts: .passthrough() 顺序修正\n- 修复 diagnosis.schema.ts: 同上\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5154c3ae921f8ff76d803e3e30208edd8c791d77","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:01:58+08:00","added":["backend/tests/api/marketing.test.ts"],"removed":[],"modified":["backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/diagnosis/diagnosis.schema.ts","backend/src/modules/leads/lead-assignment.schema.ts","backend/src/modules/leads/lead-scoring.schema.ts"]},{"id":"e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","message":"refactor: Phase 4 — 循环依赖 8→1(仅剩 prisma 自引用误报)\n\n修复策略:\n- finance 循环(#5-8): 提取 finance.types.ts 共享类型,打断子模块↔主模块循环\n- kafka/circuit-breaker(#1): producerProvider 回调注入替代动态 import\n- ai-agents(#3-4): 函数注册表模式(ai-autopilot-registry.ts)解耦互相调用\n- prisma-fallback-types(#2): madge 递归类型误报,无需修复\n\ntsc --noEmit 零错误 / madge circular 仅剩 1 个误报\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:00:25+08:00","added":["backend/src/modules/ai-agents/ai-autopilot-registry.ts","backend/src/modules/finance/finance.types.ts"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-extras.service.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance-refunds.service.ts","backend/src/modules/finance/finance.service.ts","backend/src/shared/services/circuit-breaker.service.ts"]}],"total_commits":0,"head_commit":{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1907548,"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-20T01:03:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
54
|
1774220983
|
1774221022
|
0
|
1774220981
|
1774222036
|
group: ${{ github.workflow }}-${{ github.ref }}
ca group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
7231
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
database-security.yml
|
7157
|
5
|
0
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86beff17d922cf15f9ac6e298961a63c92ec85f8","after":"0900b15d607e5c78f97fec16a73357ad4f814390","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/86beff17d922cf15f9ac6e298961a63c92ec85f8...0900b15d607e5c78f97fec16a73357ad4f814390","commits":[{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},{"id":"d896457d1be5c717ded0691d144621b3c521cd35","message":"chore: Phase 0-5 附带修复 — Agent 产生的额外优化\n\n- database.ts: 类型优化\n- main.ts: 路由注册和 schema 转换修复\n- auth.middleware.ts: 类型收紧\n- schema-converter.ts: 冗余移除\n- IMPanel.vue/MessageSearch.vue: 前端组件优化\n- list-cache.service.ts: 新增列表缓存服务\n- 更新审计报告快照\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d896457d1be5c717ded0691d144621b3c521cd35","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:08:14+08:00","added":["backend/src/shared/services/list-cache.service.ts"],"removed":[],"modified":["backend/.env.example","backend/src/config/database.ts","backend/src/main.ts","backend/src/modules/im/im-channel.controller.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/openapi/schema-converter.ts","frontend/package.json","frontend/src/components/business/IMPanel.vue","frontend/src/composables/index.ts","frontend/src/main.ts","frontend/src/stores/auth.test.ts","frontend/src/views/im/components/MessageSearch.vue","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"8d6bbbf7db74cd492873138a576a303da86c39cf","message":"test: Phase 3 — IM 15 测试 + Revenue 13 测试 + ZodEffects 兼容修复\n\n- 新增 tests/api/im.test.ts: 15 用例覆盖会话/消息/参与者/在线状态/未读统计\n- 新增 tests/api/revenue-payment-terms.test.ts: 13 用例覆盖统计/CRUD/批量/事件集成\n- 修复 validation.ts: ZodEffects.prototype 添加 partial/omit/extend 代理\n- 修复 rfm-analysis.schema.ts: .passthrough() 顺序修正\n- 发现: IM 模块需加入 requestCaseConverter 排除列表\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8d6bbbf7db74cd492873138a576a303da86c39cf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:05:53+08:00","added":["backend/tests/api/im.test.ts","backend/tests/api/revenue-payment-terms.test.ts"],"removed":[],"modified":["backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/shared/utils/validation.ts"]},{"id":"5154c3ae921f8ff76d803e3e30208edd8c791d77","message":"test: Phase 3 — Marketing API 集成测试 19 用例 + schema bug 修复\n\n- 新增 tests/api/marketing.test.ts: 19 个测试用例覆盖 CRUD + 状态机 + 多租户隔离\n- 修复 lead-scoring.schema.ts: .transform() 后 .partial() 运行时错误\n- 修复 lead-assignment.schema.ts: 同上\n- 修复 campaign-analytics.schema.ts: .passthrough() 顺序修正\n- 修复 diagnosis.schema.ts: 同上\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5154c3ae921f8ff76d803e3e30208edd8c791d77","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:01:58+08:00","added":["backend/tests/api/marketing.test.ts"],"removed":[],"modified":["backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/diagnosis/diagnosis.schema.ts","backend/src/modules/leads/lead-assignment.schema.ts","backend/src/modules/leads/lead-scoring.schema.ts"]},{"id":"e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","message":"refactor: Phase 4 — 循环依赖 8→1(仅剩 prisma 自引用误报)\n\n修复策略:\n- finance 循环(#5-8): 提取 finance.types.ts 共享类型,打断子模块↔主模块循环\n- kafka/circuit-breaker(#1): producerProvider 回调注入替代动态 import\n- ai-agents(#3-4): 函数注册表模式(ai-autopilot-registry.ts)解耦互相调用\n- prisma-fallback-types(#2): madge 递归类型误报,无需修复\n\ntsc --noEmit 零错误 / madge circular 仅剩 1 个误报\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:00:25+08:00","added":["backend/src/modules/ai-agents/ai-autopilot-registry.ts","backend/src/modules/finance/finance.types.ts"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-extras.service.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance-refunds.service.ts","backend/src/modules/finance/finance.service.ts","backend/src/shared/services/circuit-breaker.service.ts"]}],"total_commits":0,"head_commit":{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1907548,"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-20T01:03:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
18
|
1774221023
|
1774221109
|
0
|
1774220984
|
1774221657
|
|
|
0
|
Edit
Delete
|
|
7232
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
deploy.yml
|
7158
|
5
|
0
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86beff17d922cf15f9ac6e298961a63c92ec85f8","after":"0900b15d607e5c78f97fec16a73357ad4f814390","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/86beff17d922cf15f9ac6e298961a63c92ec85f8...0900b15d607e5c78f97fec16a73357ad4f814390","commits":[{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},{"id":"d896457d1be5c717ded0691d144621b3c521cd35","message":"chore: Phase 0-5 附带修复 — Agent 产生的额外优化\n\n- database.ts: 类型优化\n- main.ts: 路由注册和 schema 转换修复\n- auth.middleware.ts: 类型收紧\n- schema-converter.ts: 冗余移除\n- IMPanel.vue/MessageSearch.vue: 前端组件优化\n- list-cache.service.ts: 新增列表缓存服务\n- 更新审计报告快照\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d896457d1be5c717ded0691d144621b3c521cd35","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:08:14+08:00","added":["backend/src/shared/services/list-cache.service.ts"],"removed":[],"modified":["backend/.env.example","backend/src/config/database.ts","backend/src/main.ts","backend/src/modules/im/im-channel.controller.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/openapi/schema-converter.ts","frontend/package.json","frontend/src/components/business/IMPanel.vue","frontend/src/composables/index.ts","frontend/src/main.ts","frontend/src/stores/auth.test.ts","frontend/src/views/im/components/MessageSearch.vue","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"8d6bbbf7db74cd492873138a576a303da86c39cf","message":"test: Phase 3 — IM 15 测试 + Revenue 13 测试 + ZodEffects 兼容修复\n\n- 新增 tests/api/im.test.ts: 15 用例覆盖会话/消息/参与者/在线状态/未读统计\n- 新增 tests/api/revenue-payment-terms.test.ts: 13 用例覆盖统计/CRUD/批量/事件集成\n- 修复 validation.ts: ZodEffects.prototype 添加 partial/omit/extend 代理\n- 修复 rfm-analysis.schema.ts: .passthrough() 顺序修正\n- 发现: IM 模块需加入 requestCaseConverter 排除列表\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8d6bbbf7db74cd492873138a576a303da86c39cf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:05:53+08:00","added":["backend/tests/api/im.test.ts","backend/tests/api/revenue-payment-terms.test.ts"],"removed":[],"modified":["backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/shared/utils/validation.ts"]},{"id":"5154c3ae921f8ff76d803e3e30208edd8c791d77","message":"test: Phase 3 — Marketing API 集成测试 19 用例 + schema bug 修复\n\n- 新增 tests/api/marketing.test.ts: 19 个测试用例覆盖 CRUD + 状态机 + 多租户隔离\n- 修复 lead-scoring.schema.ts: .transform() 后 .partial() 运行时错误\n- 修复 lead-assignment.schema.ts: 同上\n- 修复 campaign-analytics.schema.ts: .passthrough() 顺序修正\n- 修复 diagnosis.schema.ts: 同上\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5154c3ae921f8ff76d803e3e30208edd8c791d77","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:01:58+08:00","added":["backend/tests/api/marketing.test.ts"],"removed":[],"modified":["backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/diagnosis/diagnosis.schema.ts","backend/src/modules/leads/lead-assignment.schema.ts","backend/src/modules/leads/lead-scoring.schema.ts"]},{"id":"e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","message":"refactor: Phase 4 — 循环依赖 8→1(仅剩 prisma 自引用误报)\n\n修复策略:\n- finance 循环(#5-8): 提取 finance.types.ts 共享类型,打断子模块↔主模块循环\n- kafka/circuit-breaker(#1): producerProvider 回调注入替代动态 import\n- ai-agents(#3-4): 函数注册表模式(ai-autopilot-registry.ts)解耦互相调用\n- prisma-fallback-types(#2): madge 递归类型误报,无需修复\n\ntsc --noEmit 零错误 / madge circular 仅剩 1 个误报\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:00:25+08:00","added":["backend/src/modules/ai-agents/ai-autopilot-registry.ts","backend/src/modules/finance/finance.types.ts"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-extras.service.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance-refunds.service.ts","backend/src/modules/finance/finance.service.ts","backend/src/shared/services/circuit-breaker.service.ts"]}],"total_commits":0,"head_commit":{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1907548,"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-20T01:03:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
22
|
1774221109
|
1774221134
|
0
|
1774220985
|
1774222052
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
7233
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
e2e-tests.yml
|
7159
|
5
|
0
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86beff17d922cf15f9ac6e298961a63c92ec85f8","after":"0900b15d607e5c78f97fec16a73357ad4f814390","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/86beff17d922cf15f9ac6e298961a63c92ec85f8...0900b15d607e5c78f97fec16a73357ad4f814390","commits":[{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},{"id":"d896457d1be5c717ded0691d144621b3c521cd35","message":"chore: Phase 0-5 附带修复 — Agent 产生的额外优化\n\n- database.ts: 类型优化\n- main.ts: 路由注册和 schema 转换修复\n- auth.middleware.ts: 类型收紧\n- schema-converter.ts: 冗余移除\n- IMPanel.vue/MessageSearch.vue: 前端组件优化\n- list-cache.service.ts: 新增列表缓存服务\n- 更新审计报告快照\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d896457d1be5c717ded0691d144621b3c521cd35","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:08:14+08:00","added":["backend/src/shared/services/list-cache.service.ts"],"removed":[],"modified":["backend/.env.example","backend/src/config/database.ts","backend/src/main.ts","backend/src/modules/im/im-channel.controller.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/openapi/schema-converter.ts","frontend/package.json","frontend/src/components/business/IMPanel.vue","frontend/src/composables/index.ts","frontend/src/main.ts","frontend/src/stores/auth.test.ts","frontend/src/views/im/components/MessageSearch.vue","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"8d6bbbf7db74cd492873138a576a303da86c39cf","message":"test: Phase 3 — IM 15 测试 + Revenue 13 测试 + ZodEffects 兼容修复\n\n- 新增 tests/api/im.test.ts: 15 用例覆盖会话/消息/参与者/在线状态/未读统计\n- 新增 tests/api/revenue-payment-terms.test.ts: 13 用例覆盖统计/CRUD/批量/事件集成\n- 修复 validation.ts: ZodEffects.prototype 添加 partial/omit/extend 代理\n- 修复 rfm-analysis.schema.ts: .passthrough() 顺序修正\n- 发现: IM 模块需加入 requestCaseConverter 排除列表\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8d6bbbf7db74cd492873138a576a303da86c39cf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:05:53+08:00","added":["backend/tests/api/im.test.ts","backend/tests/api/revenue-payment-terms.test.ts"],"removed":[],"modified":["backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/shared/utils/validation.ts"]},{"id":"5154c3ae921f8ff76d803e3e30208edd8c791d77","message":"test: Phase 3 — Marketing API 集成测试 19 用例 + schema bug 修复\n\n- 新增 tests/api/marketing.test.ts: 19 个测试用例覆盖 CRUD + 状态机 + 多租户隔离\n- 修复 lead-scoring.schema.ts: .transform() 后 .partial() 运行时错误\n- 修复 lead-assignment.schema.ts: 同上\n- 修复 campaign-analytics.schema.ts: .passthrough() 顺序修正\n- 修复 diagnosis.schema.ts: 同上\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5154c3ae921f8ff76d803e3e30208edd8c791d77","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:01:58+08:00","added":["backend/tests/api/marketing.test.ts"],"removed":[],"modified":["backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/diagnosis/diagnosis.schema.ts","backend/src/modules/leads/lead-assignment.schema.ts","backend/src/modules/leads/lead-scoring.schema.ts"]},{"id":"e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","message":"refactor: Phase 4 — 循环依赖 8→1(仅剩 prisma 自引用误报)\n\n修复策略:\n- finance 循环(#5-8): 提取 finance.types.ts 共享类型,打断子模块↔主模块循环\n- kafka/circuit-breaker(#1): producerProvider 回调注入替代动态 import\n- ai-agents(#3-4): 函数注册表模式(ai-autopilot-registry.ts)解耦互相调用\n- prisma-fallback-types(#2): madge 递归类型误报,无需修复\n\ntsc --noEmit 零错误 / madge circular 仅剩 1 个误报\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:00:25+08:00","added":["backend/src/modules/ai-agents/ai-autopilot-registry.ts","backend/src/modules/finance/finance.types.ts"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-extras.service.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance-refunds.service.ts","backend/src/modules/finance/finance.service.ts","backend/src/shared/services/circuit-breaker.service.ts"]}],"total_commits":0,"head_commit":{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1907548,"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-20T01:03:04+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
|
1774221136
|
1774221335
|
0
|
1774220985
|
1774221691
|
|
|
0
|
Edit
Delete
|
|
7234
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
integration-test.yml
|
7160
|
5
|
0
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86beff17d922cf15f9ac6e298961a63c92ec85f8","after":"0900b15d607e5c78f97fec16a73357ad4f814390","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/86beff17d922cf15f9ac6e298961a63c92ec85f8...0900b15d607e5c78f97fec16a73357ad4f814390","commits":[{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},{"id":"d896457d1be5c717ded0691d144621b3c521cd35","message":"chore: Phase 0-5 附带修复 — Agent 产生的额外优化\n\n- database.ts: 类型优化\n- main.ts: 路由注册和 schema 转换修复\n- auth.middleware.ts: 类型收紧\n- schema-converter.ts: 冗余移除\n- IMPanel.vue/MessageSearch.vue: 前端组件优化\n- list-cache.service.ts: 新增列表缓存服务\n- 更新审计报告快照\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d896457d1be5c717ded0691d144621b3c521cd35","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:08:14+08:00","added":["backend/src/shared/services/list-cache.service.ts"],"removed":[],"modified":["backend/.env.example","backend/src/config/database.ts","backend/src/main.ts","backend/src/modules/im/im-channel.controller.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/openapi/schema-converter.ts","frontend/package.json","frontend/src/components/business/IMPanel.vue","frontend/src/composables/index.ts","frontend/src/main.ts","frontend/src/stores/auth.test.ts","frontend/src/views/im/components/MessageSearch.vue","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"8d6bbbf7db74cd492873138a576a303da86c39cf","message":"test: Phase 3 — IM 15 测试 + Revenue 13 测试 + ZodEffects 兼容修复\n\n- 新增 tests/api/im.test.ts: 15 用例覆盖会话/消息/参与者/在线状态/未读统计\n- 新增 tests/api/revenue-payment-terms.test.ts: 13 用例覆盖统计/CRUD/批量/事件集成\n- 修复 validation.ts: ZodEffects.prototype 添加 partial/omit/extend 代理\n- 修复 rfm-analysis.schema.ts: .passthrough() 顺序修正\n- 发现: IM 模块需加入 requestCaseConverter 排除列表\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8d6bbbf7db74cd492873138a576a303da86c39cf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:05:53+08:00","added":["backend/tests/api/im.test.ts","backend/tests/api/revenue-payment-terms.test.ts"],"removed":[],"modified":["backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/shared/utils/validation.ts"]},{"id":"5154c3ae921f8ff76d803e3e30208edd8c791d77","message":"test: Phase 3 — Marketing API 集成测试 19 用例 + schema bug 修复\n\n- 新增 tests/api/marketing.test.ts: 19 个测试用例覆盖 CRUD + 状态机 + 多租户隔离\n- 修复 lead-scoring.schema.ts: .transform() 后 .partial() 运行时错误\n- 修复 lead-assignment.schema.ts: 同上\n- 修复 campaign-analytics.schema.ts: .passthrough() 顺序修正\n- 修复 diagnosis.schema.ts: 同上\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5154c3ae921f8ff76d803e3e30208edd8c791d77","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:01:58+08:00","added":["backend/tests/api/marketing.test.ts"],"removed":[],"modified":["backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/diagnosis/diagnosis.schema.ts","backend/src/modules/leads/lead-assignment.schema.ts","backend/src/modules/leads/lead-scoring.schema.ts"]},{"id":"e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","message":"refactor: Phase 4 — 循环依赖 8→1(仅剩 prisma 自引用误报)\n\n修复策略:\n- finance 循环(#5-8): 提取 finance.types.ts 共享类型,打断子模块↔主模块循环\n- kafka/circuit-breaker(#1): producerProvider 回调注入替代动态 import\n- ai-agents(#3-4): 函数注册表模式(ai-autopilot-registry.ts)解耦互相调用\n- prisma-fallback-types(#2): madge 递归类型误报,无需修复\n\ntsc --noEmit 零错误 / madge circular 仅剩 1 个误报\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:00:25+08:00","added":["backend/src/modules/ai-agents/ai-autopilot-registry.ts","backend/src/modules/finance/finance.types.ts"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-extras.service.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance-refunds.service.ts","backend/src/modules/finance/finance.service.ts","backend/src/shared/services/circuit-breaker.service.ts"]}],"total_commits":0,"head_commit":{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1907548,"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-20T01:03:04+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
|
1774221338
|
1774221755
|
0
|
1774220986
|
1774222054
|
group: integration-${{ github.workflow }}-${{ gith group: integration-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
integration-integration-test.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
7235
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
quality-check.yml
|
7161
|
5
|
0
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86beff17d922cf15f9ac6e298961a63c92ec85f8","after":"0900b15d607e5c78f97fec16a73357ad4f814390","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/86beff17d922cf15f9ac6e298961a63c92ec85f8...0900b15d607e5c78f97fec16a73357ad4f814390","commits":[{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},{"id":"d896457d1be5c717ded0691d144621b3c521cd35","message":"chore: Phase 0-5 附带修复 — Agent 产生的额外优化\n\n- database.ts: 类型优化\n- main.ts: 路由注册和 schema 转换修复\n- auth.middleware.ts: 类型收紧\n- schema-converter.ts: 冗余移除\n- IMPanel.vue/MessageSearch.vue: 前端组件优化\n- list-cache.service.ts: 新增列表缓存服务\n- 更新审计报告快照\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d896457d1be5c717ded0691d144621b3c521cd35","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:08:14+08:00","added":["backend/src/shared/services/list-cache.service.ts"],"removed":[],"modified":["backend/.env.example","backend/src/config/database.ts","backend/src/main.ts","backend/src/modules/im/im-channel.controller.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/openapi/schema-converter.ts","frontend/package.json","frontend/src/components/business/IMPanel.vue","frontend/src/composables/index.ts","frontend/src/main.ts","frontend/src/stores/auth.test.ts","frontend/src/views/im/components/MessageSearch.vue","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"8d6bbbf7db74cd492873138a576a303da86c39cf","message":"test: Phase 3 — IM 15 测试 + Revenue 13 测试 + ZodEffects 兼容修复\n\n- 新增 tests/api/im.test.ts: 15 用例覆盖会话/消息/参与者/在线状态/未读统计\n- 新增 tests/api/revenue-payment-terms.test.ts: 13 用例覆盖统计/CRUD/批量/事件集成\n- 修复 validation.ts: ZodEffects.prototype 添加 partial/omit/extend 代理\n- 修复 rfm-analysis.schema.ts: .passthrough() 顺序修正\n- 发现: IM 模块需加入 requestCaseConverter 排除列表\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8d6bbbf7db74cd492873138a576a303da86c39cf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:05:53+08:00","added":["backend/tests/api/im.test.ts","backend/tests/api/revenue-payment-terms.test.ts"],"removed":[],"modified":["backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/shared/utils/validation.ts"]},{"id":"5154c3ae921f8ff76d803e3e30208edd8c791d77","message":"test: Phase 3 — Marketing API 集成测试 19 用例 + schema bug 修复\n\n- 新增 tests/api/marketing.test.ts: 19 个测试用例覆盖 CRUD + 状态机 + 多租户隔离\n- 修复 lead-scoring.schema.ts: .transform() 后 .partial() 运行时错误\n- 修复 lead-assignment.schema.ts: 同上\n- 修复 campaign-analytics.schema.ts: .passthrough() 顺序修正\n- 修复 diagnosis.schema.ts: 同上\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5154c3ae921f8ff76d803e3e30208edd8c791d77","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:01:58+08:00","added":["backend/tests/api/marketing.test.ts"],"removed":[],"modified":["backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/diagnosis/diagnosis.schema.ts","backend/src/modules/leads/lead-assignment.schema.ts","backend/src/modules/leads/lead-scoring.schema.ts"]},{"id":"e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","message":"refactor: Phase 4 — 循环依赖 8→1(仅剩 prisma 自引用误报)\n\n修复策略:\n- finance 循环(#5-8): 提取 finance.types.ts 共享类型,打断子模块↔主模块循环\n- kafka/circuit-breaker(#1): producerProvider 回调注入替代动态 import\n- ai-agents(#3-4): 函数注册表模式(ai-autopilot-registry.ts)解耦互相调用\n- prisma-fallback-types(#2): madge 递归类型误报,无需修复\n\ntsc --noEmit 零错误 / madge circular 仅剩 1 个误报\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:00:25+08:00","added":["backend/src/modules/ai-agents/ai-autopilot-registry.ts","backend/src/modules/finance/finance.types.ts"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-extras.service.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance-refunds.service.ts","backend/src/modules/finance/finance.service.ts","backend/src/shared/services/circuit-breaker.service.ts"]}],"total_commits":0,"head_commit":{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1907548,"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-20T01:03:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
16
|
1774221354
|
1774221554
|
0
|
1774220986
|
1774221785
|
group: quality-${{ github.workflow }}-${{ github.r group: quality-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
quality-quality-check.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
7236
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
test.yml
|
7162
|
5
|
0
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86beff17d922cf15f9ac6e298961a63c92ec85f8","after":"0900b15d607e5c78f97fec16a73357ad4f814390","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/86beff17d922cf15f9ac6e298961a63c92ec85f8...0900b15d607e5c78f97fec16a73357ad4f814390","commits":[{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},{"id":"d896457d1be5c717ded0691d144621b3c521cd35","message":"chore: Phase 0-5 附带修复 — Agent 产生的额外优化\n\n- database.ts: 类型优化\n- main.ts: 路由注册和 schema 转换修复\n- auth.middleware.ts: 类型收紧\n- schema-converter.ts: 冗余移除\n- IMPanel.vue/MessageSearch.vue: 前端组件优化\n- list-cache.service.ts: 新增列表缓存服务\n- 更新审计报告快照\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d896457d1be5c717ded0691d144621b3c521cd35","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:08:14+08:00","added":["backend/src/shared/services/list-cache.service.ts"],"removed":[],"modified":["backend/.env.example","backend/src/config/database.ts","backend/src/main.ts","backend/src/modules/im/im-channel.controller.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/openapi/schema-converter.ts","frontend/package.json","frontend/src/components/business/IMPanel.vue","frontend/src/composables/index.ts","frontend/src/main.ts","frontend/src/stores/auth.test.ts","frontend/src/views/im/components/MessageSearch.vue","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"8d6bbbf7db74cd492873138a576a303da86c39cf","message":"test: Phase 3 — IM 15 测试 + Revenue 13 测试 + ZodEffects 兼容修复\n\n- 新增 tests/api/im.test.ts: 15 用例覆盖会话/消息/参与者/在线状态/未读统计\n- 新增 tests/api/revenue-payment-terms.test.ts: 13 用例覆盖统计/CRUD/批量/事件集成\n- 修复 validation.ts: ZodEffects.prototype 添加 partial/omit/extend 代理\n- 修复 rfm-analysis.schema.ts: .passthrough() 顺序修正\n- 发现: IM 模块需加入 requestCaseConverter 排除列表\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8d6bbbf7db74cd492873138a576a303da86c39cf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:05:53+08:00","added":["backend/tests/api/im.test.ts","backend/tests/api/revenue-payment-terms.test.ts"],"removed":[],"modified":["backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/shared/utils/validation.ts"]},{"id":"5154c3ae921f8ff76d803e3e30208edd8c791d77","message":"test: Phase 3 — Marketing API 集成测试 19 用例 + schema bug 修复\n\n- 新增 tests/api/marketing.test.ts: 19 个测试用例覆盖 CRUD + 状态机 + 多租户隔离\n- 修复 lead-scoring.schema.ts: .transform() 后 .partial() 运行时错误\n- 修复 lead-assignment.schema.ts: 同上\n- 修复 campaign-analytics.schema.ts: .passthrough() 顺序修正\n- 修复 diagnosis.schema.ts: 同上\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5154c3ae921f8ff76d803e3e30208edd8c791d77","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:01:58+08:00","added":["backend/tests/api/marketing.test.ts"],"removed":[],"modified":["backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/diagnosis/diagnosis.schema.ts","backend/src/modules/leads/lead-assignment.schema.ts","backend/src/modules/leads/lead-scoring.schema.ts"]},{"id":"e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","message":"refactor: Phase 4 — 循环依赖 8→1(仅剩 prisma 自引用误报)\n\n修复策略:\n- finance 循环(#5-8): 提取 finance.types.ts 共享类型,打断子模块↔主模块循环\n- kafka/circuit-breaker(#1): producerProvider 回调注入替代动态 import\n- ai-agents(#3-4): 函数注册表模式(ai-autopilot-registry.ts)解耦互相调用\n- prisma-fallback-types(#2): madge 递归类型误报,无需修复\n\ntsc --noEmit 零错误 / madge circular 仅剩 1 个误报\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:00:25+08:00","added":["backend/src/modules/ai-agents/ai-autopilot-registry.ts","backend/src/modules/finance/finance.types.ts"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-extras.service.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance-refunds.service.ts","backend/src/modules/finance/finance.service.ts","backend/src/shared/services/circuit-breaker.service.ts"]}],"total_commits":0,"head_commit":{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1907548,"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-20T01:03:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
42
|
1774221555
|
1774221616
|
0
|
1774220987
|
1774222034
|
group: test-${{ github.workflow }}-${{ github.ref group: test-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-test.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
7237
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
health-check.yml
|
7163
|
-2
|
96
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86beff17d922cf15f9ac6e298961a63c92ec85f8","after":"0900b15d607e5c78f97fec16a73357ad4f814390","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/86beff17d922cf15f9ac6e298961a63c92ec85f8...0900b15d607e5c78f97fec16a73357ad4f814390","commits":[{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},{"id":"d896457d1be5c717ded0691d144621b3c521cd35","message":"chore: Phase 0-5 附带修复 — Agent 产生的额外优化\n\n- database.ts: 类型优化\n- main.ts: 路由注册和 schema 转换修复\n- auth.middleware.ts: 类型收紧\n- schema-converter.ts: 冗余移除\n- IMPanel.vue/MessageSearch.vue: 前端组件优化\n- list-cache.service.ts: 新增列表缓存服务\n- 更新审计报告快照\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d896457d1be5c717ded0691d144621b3c521cd35","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:08:14+08:00","added":["backend/src/shared/services/list-cache.service.ts"],"removed":[],"modified":["backend/.env.example","backend/src/config/database.ts","backend/src/main.ts","backend/src/modules/im/im-channel.controller.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/openapi/schema-converter.ts","frontend/package.json","frontend/src/components/business/IMPanel.vue","frontend/src/composables/index.ts","frontend/src/main.ts","frontend/src/stores/auth.test.ts","frontend/src/views/im/components/MessageSearch.vue","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"8d6bbbf7db74cd492873138a576a303da86c39cf","message":"test: Phase 3 — IM 15 测试 + Revenue 13 测试 + ZodEffects 兼容修复\n\n- 新增 tests/api/im.test.ts: 15 用例覆盖会话/消息/参与者/在线状态/未读统计\n- 新增 tests/api/revenue-payment-terms.test.ts: 13 用例覆盖统计/CRUD/批量/事件集成\n- 修复 validation.ts: ZodEffects.prototype 添加 partial/omit/extend 代理\n- 修复 rfm-analysis.schema.ts: .passthrough() 顺序修正\n- 发现: IM 模块需加入 requestCaseConverter 排除列表\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8d6bbbf7db74cd492873138a576a303da86c39cf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:05:53+08:00","added":["backend/tests/api/im.test.ts","backend/tests/api/revenue-payment-terms.test.ts"],"removed":[],"modified":["backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/shared/utils/validation.ts"]},{"id":"5154c3ae921f8ff76d803e3e30208edd8c791d77","message":"test: Phase 3 — Marketing API 集成测试 19 用例 + schema bug 修复\n\n- 新增 tests/api/marketing.test.ts: 19 个测试用例覆盖 CRUD + 状态机 + 多租户隔离\n- 修复 lead-scoring.schema.ts: .transform() 后 .partial() 运行时错误\n- 修复 lead-assignment.schema.ts: 同上\n- 修复 campaign-analytics.schema.ts: .passthrough() 顺序修正\n- 修复 diagnosis.schema.ts: 同上\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5154c3ae921f8ff76d803e3e30208edd8c791d77","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:01:58+08:00","added":["backend/tests/api/marketing.test.ts"],"removed":[],"modified":["backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/diagnosis/diagnosis.schema.ts","backend/src/modules/leads/lead-assignment.schema.ts","backend/src/modules/leads/lead-scoring.schema.ts"]},{"id":"e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","message":"refactor: Phase 4 — 循环依赖 8→1(仅剩 prisma 自引用误报)\n\n修复策略:\n- finance 循环(#5-8): 提取 finance.types.ts 共享类型,打断子模块↔主模块循环\n- kafka/circuit-breaker(#1): producerProvider 回调注入替代动态 import\n- ai-agents(#3-4): 函数注册表模式(ai-autopilot-registry.ts)解耦互相调用\n- prisma-fallback-types(#2): madge 递归类型误报,无需修复\n\ntsc --noEmit 零错误 / madge circular 仅剩 1 个误报\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:00:25+08:00","added":["backend/src/modules/ai-agents/ai-autopilot-registry.ts","backend/src/modules/finance/finance.types.ts"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-extras.service.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance-refunds.service.ts","backend/src/modules/finance/finance.service.ts","backend/src/shared/services/circuit-breaker.service.ts"]}],"total_commits":0,"head_commit":{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1907548,"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-20T01:03:04+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
|
1774221624
|
1774221625
|
0
|
1774221040
|
1774221625
|
|
|
0
|
Edit
Delete
|
|
7238
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
test-report.yml
|
7164
|
5
|
0
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-03-23T07:09:28+08:00","updated_at":"2026-03-23T07:09:28+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":7233,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7233","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7233","display_title":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7159,"head_sha":"0900b15d607e5c78f97fec16a73357ad4f814390","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":1919760,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:09:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-03-23T07:12:16+08:00","completed_at":"2026-03-23T07:15:35+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":1919760,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:09:48+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
|
1774221692
|
1774221722
|
0
|
1774221337
|
1774221935
|
|
|
0
|
Edit
Delete
|
|
7239
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
health-check.yml
|
7165
|
-2
|
96
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86beff17d922cf15f9ac6e298961a63c92ec85f8","after":"0900b15d607e5c78f97fec16a73357ad4f814390","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/86beff17d922cf15f9ac6e298961a63c92ec85f8...0900b15d607e5c78f97fec16a73357ad4f814390","commits":[{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},{"id":"d896457d1be5c717ded0691d144621b3c521cd35","message":"chore: Phase 0-5 附带修复 — Agent 产生的额外优化\n\n- database.ts: 类型优化\n- main.ts: 路由注册和 schema 转换修复\n- auth.middleware.ts: 类型收紧\n- schema-converter.ts: 冗余移除\n- IMPanel.vue/MessageSearch.vue: 前端组件优化\n- list-cache.service.ts: 新增列表缓存服务\n- 更新审计报告快照\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d896457d1be5c717ded0691d144621b3c521cd35","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:08:14+08:00","added":["backend/src/shared/services/list-cache.service.ts"],"removed":[],"modified":["backend/.env.example","backend/src/config/database.ts","backend/src/main.ts","backend/src/modules/im/im-channel.controller.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/openapi/schema-converter.ts","frontend/package.json","frontend/src/components/business/IMPanel.vue","frontend/src/composables/index.ts","frontend/src/main.ts","frontend/src/stores/auth.test.ts","frontend/src/views/im/components/MessageSearch.vue","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"8d6bbbf7db74cd492873138a576a303da86c39cf","message":"test: Phase 3 — IM 15 测试 + Revenue 13 测试 + ZodEffects 兼容修复\n\n- 新增 tests/api/im.test.ts: 15 用例覆盖会话/消息/参与者/在线状态/未读统计\n- 新增 tests/api/revenue-payment-terms.test.ts: 13 用例覆盖统计/CRUD/批量/事件集成\n- 修复 validation.ts: ZodEffects.prototype 添加 partial/omit/extend 代理\n- 修复 rfm-analysis.schema.ts: .passthrough() 顺序修正\n- 发现: IM 模块需加入 requestCaseConverter 排除列表\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8d6bbbf7db74cd492873138a576a303da86c39cf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:05:53+08:00","added":["backend/tests/api/im.test.ts","backend/tests/api/revenue-payment-terms.test.ts"],"removed":[],"modified":["backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/shared/utils/validation.ts"]},{"id":"5154c3ae921f8ff76d803e3e30208edd8c791d77","message":"test: Phase 3 — Marketing API 集成测试 19 用例 + schema bug 修复\n\n- 新增 tests/api/marketing.test.ts: 19 个测试用例覆盖 CRUD + 状态机 + 多租户隔离\n- 修复 lead-scoring.schema.ts: .transform() 后 .partial() 运行时错误\n- 修复 lead-assignment.schema.ts: 同上\n- 修复 campaign-analytics.schema.ts: .passthrough() 顺序修正\n- 修复 diagnosis.schema.ts: 同上\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5154c3ae921f8ff76d803e3e30208edd8c791d77","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:01:58+08:00","added":["backend/tests/api/marketing.test.ts"],"removed":[],"modified":["backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/diagnosis/diagnosis.schema.ts","backend/src/modules/leads/lead-assignment.schema.ts","backend/src/modules/leads/lead-scoring.schema.ts"]},{"id":"e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","message":"refactor: Phase 4 — 循环依赖 8→1(仅剩 prisma 自引用误报)\n\n修复策略:\n- finance 循环(#5-8): 提取 finance.types.ts 共享类型,打断子模块↔主模块循环\n- kafka/circuit-breaker(#1): producerProvider 回调注入替代动态 import\n- ai-agents(#3-4): 函数注册表模式(ai-autopilot-registry.ts)解耦互相调用\n- prisma-fallback-types(#2): madge 递归类型误报,无需修复\n\ntsc --noEmit 零错误 / madge circular 仅剩 1 个误报\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:00:25+08:00","added":["backend/src/modules/ai-agents/ai-autopilot-registry.ts","backend/src/modules/finance/finance.types.ts"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-extras.service.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance-refunds.service.ts","backend/src/modules/finance/finance.service.ts","backend/src/shared/services/circuit-breaker.service.ts"]}],"total_commits":0,"head_commit":{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1907548,"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-20T01:03:04+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
|
1774221722
|
1774221723
|
0
|
1774221340
|
1774221723
|
|
|
0
|
Edit
Delete
|
|
7240
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
test-report.yml
|
7166
|
5
|
0
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test.yml","name":"Test Suite","path":".github/workflows/test.yml","state":"active","created_at":"2026-03-23T07:09:28+08:00","updated_at":"2026-03-23T07:09:28+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":7236,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7236","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7236","display_title":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强","path":"test.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7162,"head_sha":"0900b15d607e5c78f97fec16a73357ad4f814390","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":1919760,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:09:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-03-23T07:19:15+08:00","completed_at":"2026-03-23T07:20:16+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":1919760,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:09:48+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
|
1774221786
|
1774221816
|
0
|
1774221616
|
1774221941
|
|
|
0
|
Edit
Delete
|
|
7241
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
health-check.yml
|
7167
|
-2
|
96
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86beff17d922cf15f9ac6e298961a63c92ec85f8","after":"0900b15d607e5c78f97fec16a73357ad4f814390","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/86beff17d922cf15f9ac6e298961a63c92ec85f8...0900b15d607e5c78f97fec16a73357ad4f814390","commits":[{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},{"id":"d896457d1be5c717ded0691d144621b3c521cd35","message":"chore: Phase 0-5 附带修复 — Agent 产生的额外优化\n\n- database.ts: 类型优化\n- main.ts: 路由注册和 schema 转换修复\n- auth.middleware.ts: 类型收紧\n- schema-converter.ts: 冗余移除\n- IMPanel.vue/MessageSearch.vue: 前端组件优化\n- list-cache.service.ts: 新增列表缓存服务\n- 更新审计报告快照\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d896457d1be5c717ded0691d144621b3c521cd35","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:08:14+08:00","added":["backend/src/shared/services/list-cache.service.ts"],"removed":[],"modified":["backend/.env.example","backend/src/config/database.ts","backend/src/main.ts","backend/src/modules/im/im-channel.controller.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/openapi/schema-converter.ts","frontend/package.json","frontend/src/components/business/IMPanel.vue","frontend/src/composables/index.ts","frontend/src/main.ts","frontend/src/stores/auth.test.ts","frontend/src/views/im/components/MessageSearch.vue","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"8d6bbbf7db74cd492873138a576a303da86c39cf","message":"test: Phase 3 — IM 15 测试 + Revenue 13 测试 + ZodEffects 兼容修复\n\n- 新增 tests/api/im.test.ts: 15 用例覆盖会话/消息/参与者/在线状态/未读统计\n- 新增 tests/api/revenue-payment-terms.test.ts: 13 用例覆盖统计/CRUD/批量/事件集成\n- 修复 validation.ts: ZodEffects.prototype 添加 partial/omit/extend 代理\n- 修复 rfm-analysis.schema.ts: .passthrough() 顺序修正\n- 发现: IM 模块需加入 requestCaseConverter 排除列表\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8d6bbbf7db74cd492873138a576a303da86c39cf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:05:53+08:00","added":["backend/tests/api/im.test.ts","backend/tests/api/revenue-payment-terms.test.ts"],"removed":[],"modified":["backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/shared/utils/validation.ts"]},{"id":"5154c3ae921f8ff76d803e3e30208edd8c791d77","message":"test: Phase 3 — Marketing API 集成测试 19 用例 + schema bug 修复\n\n- 新增 tests/api/marketing.test.ts: 19 个测试用例覆盖 CRUD + 状态机 + 多租户隔离\n- 修复 lead-scoring.schema.ts: .transform() 后 .partial() 运行时错误\n- 修复 lead-assignment.schema.ts: 同上\n- 修复 campaign-analytics.schema.ts: .passthrough() 顺序修正\n- 修复 diagnosis.schema.ts: 同上\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5154c3ae921f8ff76d803e3e30208edd8c791d77","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:01:58+08:00","added":["backend/tests/api/marketing.test.ts"],"removed":[],"modified":["backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/diagnosis/diagnosis.schema.ts","backend/src/modules/leads/lead-assignment.schema.ts","backend/src/modules/leads/lead-scoring.schema.ts"]},{"id":"e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","message":"refactor: Phase 4 — 循环依赖 8→1(仅剩 prisma 自引用误报)\n\n修复策略:\n- finance 循环(#5-8): 提取 finance.types.ts 共享类型,打断子模块↔主模块循环\n- kafka/circuit-breaker(#1): producerProvider 回调注入替代动态 import\n- ai-agents(#3-4): 函数注册表模式(ai-autopilot-registry.ts)解耦互相调用\n- prisma-fallback-types(#2): madge 递归类型误报,无需修复\n\ntsc --noEmit 零错误 / madge circular 仅剩 1 个误报\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:00:25+08:00","added":["backend/src/modules/ai-agents/ai-autopilot-registry.ts","backend/src/modules/finance/finance.types.ts"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-extras.service.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance-refunds.service.ts","backend/src/modules/finance/finance.service.ts","backend/src/shared/services/circuit-breaker.service.ts"]}],"total_commits":0,"head_commit":{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1907548,"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-20T01:03:04+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
|
1774221838
|
1774221839
|
0
|
1774221640
|
1774221839
|
|
|
0
|
Edit
Delete
|
|
7242
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
test-report.yml
|
7168
|
5
|
0
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-03-23T07:09:28+08:00","updated_at":"2026-03-23T07:09:28+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":7233,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7233","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7233","display_title":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7159,"head_sha":"0900b15d607e5c78f97fec16a73357ad4f814390","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":1919760,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:09:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-03-23T07:12:16+08:00","completed_at":"2026-03-23T07:15:35+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":1919760,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:09:48+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
|
1774221842
|
1774221933
|
0
|
1774221691
|
1774222042
|
|
|
0
|
Edit
Delete
|
|
7243
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
health-check.yml
|
7169
|
-2
|
96
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"86beff17d922cf15f9ac6e298961a63c92ec85f8","after":"0900b15d607e5c78f97fec16a73357ad4f814390","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/86beff17d922cf15f9ac6e298961a63c92ec85f8...0900b15d607e5c78f97fec16a73357ad4f814390","commits":[{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},{"id":"d896457d1be5c717ded0691d144621b3c521cd35","message":"chore: Phase 0-5 附带修复 — Agent 产生的额外优化\n\n- database.ts: 类型优化\n- main.ts: 路由注册和 schema 转换修复\n- auth.middleware.ts: 类型收紧\n- schema-converter.ts: 冗余移除\n- IMPanel.vue/MessageSearch.vue: 前端组件优化\n- list-cache.service.ts: 新增列表缓存服务\n- 更新审计报告快照\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d896457d1be5c717ded0691d144621b3c521cd35","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:08:14+08:00","added":["backend/src/shared/services/list-cache.service.ts"],"removed":[],"modified":["backend/.env.example","backend/src/config/database.ts","backend/src/main.ts","backend/src/modules/im/im-channel.controller.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/openapi/schema-converter.ts","frontend/package.json","frontend/src/components/business/IMPanel.vue","frontend/src/composables/index.ts","frontend/src/main.ts","frontend/src/stores/auth.test.ts","frontend/src/views/im/components/MessageSearch.vue","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"8d6bbbf7db74cd492873138a576a303da86c39cf","message":"test: Phase 3 — IM 15 测试 + Revenue 13 测试 + ZodEffects 兼容修复\n\n- 新增 tests/api/im.test.ts: 15 用例覆盖会话/消息/参与者/在线状态/未读统计\n- 新增 tests/api/revenue-payment-terms.test.ts: 13 用例覆盖统计/CRUD/批量/事件集成\n- 修复 validation.ts: ZodEffects.prototype 添加 partial/omit/extend 代理\n- 修复 rfm-analysis.schema.ts: .passthrough() 顺序修正\n- 发现: IM 模块需加入 requestCaseConverter 排除列表\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8d6bbbf7db74cd492873138a576a303da86c39cf","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:05:53+08:00","added":["backend/tests/api/im.test.ts","backend/tests/api/revenue-payment-terms.test.ts"],"removed":[],"modified":["backend/src/modules/rfm-analysis/rfm-analysis.schema.ts","backend/src/shared/utils/validation.ts"]},{"id":"5154c3ae921f8ff76d803e3e30208edd8c791d77","message":"test: Phase 3 — Marketing API 集成测试 19 用例 + schema bug 修复\n\n- 新增 tests/api/marketing.test.ts: 19 个测试用例覆盖 CRUD + 状态机 + 多租户隔离\n- 修复 lead-scoring.schema.ts: .transform() 后 .partial() 运行时错误\n- 修复 lead-assignment.schema.ts: 同上\n- 修复 campaign-analytics.schema.ts: .passthrough() 顺序修正\n- 修复 diagnosis.schema.ts: 同上\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5154c3ae921f8ff76d803e3e30208edd8c791d77","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:01:58+08:00","added":["backend/tests/api/marketing.test.ts"],"removed":[],"modified":["backend/src/modules/campaign-analytics/campaign-analytics.schema.ts","backend/src/modules/diagnosis/diagnosis.schema.ts","backend/src/modules/leads/lead-assignment.schema.ts","backend/src/modules/leads/lead-scoring.schema.ts"]},{"id":"e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","message":"refactor: Phase 4 — 循环依赖 8→1(仅剩 prisma 自引用误报)\n\n修复策略:\n- finance 循环(#5-8): 提取 finance.types.ts 共享类型,打断子模块↔主模块循环\n- kafka/circuit-breaker(#1): producerProvider 回调注入替代动态 import\n- ai-agents(#3-4): 函数注册表模式(ai-autopilot-registry.ts)解耦互相调用\n- prisma-fallback-types(#2): madge 递归类型误报,无需修复\n\ntsc --noEmit 零错误 / madge circular 仅剩 1 个误报\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e75f31c633c3520ac69d3d9e47b2bdb86a517e6d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-22T23:00:25+08:00","added":["backend/src/modules/ai-agents/ai-autopilot-registry.ts","backend/src/modules/finance/finance.types.ts"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-extras.service.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance-refunds.service.ts","backend/src/modules/finance/finance.service.ts","backend/src/shared/services/circuit-breaker.service.ts"]}],"total_commits":0,"head_commit":{"id":"0900b15d607e5c78f97fec16a73357ad4f814390","message":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强\n\n三类修复(多 Agent 并行协作,零回归验证通过):\n\n1. 列表页 undefined 防护(10 文件 14 处):\n - res.data → res?.data ?? [] 防止 .map()/.length 崩溃\n - res.meta.total → res?.meta?.total ?? 0 防止分页异常\n\n2. 表单验证 try-catch(10 文件):\n - validate() 裸调用 → .catch(() =\u003e false) + if (!valid) return\n - 防止验证失败时页面卡死\n\n3. 删除操作错误处理(5 文件 8 处):\n - 空 catch 吞掉所有错误 → isCancelError 区分用户取消/真实错误\n - 真实 API 错误显示友好提示\n\n4. useApiQuery.ts 增强:\n - normalizeListResult 归一化防 undefined\n - useApiMutation 添加 onError 默认提示 + successMessage 控制\n - 全部 hook 添加 retry: 1\n\n验证:Vite 构建通过 / vue-tsc 0 新增错误 / 后端 4267 测试通过(+51)/ E2E 12/14 通过(0 回归)\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0900b15d607e5c78f97fec16a73357ad4f814390","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-23T07:09:28+08:00","added":["frontend/src/composables/useApiQuery.ts"],"removed":[],"modified":["frontend/src/views/approval-configs/Form.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/cost-allocation/Form.vue","frontend/src/views/customer-balance/Form.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/diagnosis/Index.vue","frontend/src/views/email-templates/Form.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/maintenance/PlanForm.vue","frontend/src/views/maintenance/TaskForm.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/partner-customers/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/products/Categories.vue","frontend/src/views/roles/Index.vue","frontend/src/views/roles/components/RoleUsers.vue","frontend/src/views/segments/Form.vue","frontend/src/views/social-matrix/Form.vue","frontend/src/views/stores/Form.vue","frontend/src/views/swot-analyses/Index.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1907548,"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-20T01:03:04+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
|
1774222046
|
1774222046
|
0
|
1774221940
|
1774222046
|
|
|
0
|
Edit
Delete
|
|
7244
|
fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强
|
6
|
5
|
test-report.yml
|
7170
|
5
|
0
|
refs/heads/main
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test.yml","name":"Test Suite","path":".github/workflows/test.yml","state":"active","created_at":"2026-03-23T07:09:28+08:00","updated_at":"2026-03-23T07:09:28+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":7236,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7236","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7236","display_title":"fix: 前端 UI 交互防崩溃加固 — 25 个视图文件 + useApiQuery 增强","path":"test.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7162,"head_sha":"0900b15d607e5c78f97fec16a73357ad4f814390","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":1919760,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:09:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-03-23T07:19:15+08:00","completed_at":"2026-03-23T07:20:16+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":1919760,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-23T07:09:48+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
|
1774222048
|
1774222051
|
0
|
1774222034
|
1774222058
|
|
|
0
|
Edit
Delete
|