|
7669
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
test-report.yml
|
7594
|
5
|
0
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
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-24T11:01:20+08:00","updated_at":"2026-03-24T11:01:20+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":7666,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7666","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7666","display_title":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7591,"head_sha":"db7f39e63151b9c065646855287b8be73e13649b","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":1845515,"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-24T11:03:52+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-24T11:03:52+08:00","completed_at":"2026-03-24T11:06:26+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":1845515,"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-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1774321624
|
1774321628
|
0
|
1774321586
|
1774321644
|
|
|
0
|
Edit
Delete
|
|
7670
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
deploy.yml
|
7595
|
5
|
0
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-03-24T11:01:20+08:00","updated_at":"2026-03-24T11:01:20+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":7667,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7667","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7667","display_title":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7592,"head_sha":"db7f39e63151b9c065646855287b8be73e13649b","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":1845515,"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-24T11:03:52+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-24T11:06:26+08:00","completed_at":"2026-03-24T11:07:01+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":1845515,"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-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
21
|
1774321639
|
1774321784
|
0
|
1774321621
|
1774321785
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
7671
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
test-report.yml
|
7596
|
5
|
0
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
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-24T11:01:20+08:00","updated_at":"2026-03-24T11:01:20+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":7666,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7666","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7666","display_title":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7591,"head_sha":"db7f39e63151b9c065646855287b8be73e13649b","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":1845515,"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-24T11:03:52+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-24T11:03:52+08:00","completed_at":"2026-03-24T11:06:26+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":1845515,"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-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1774321645
|
1774321648
|
0
|
1774321631
|
1774321788
|
|
|
0
|
Edit
Delete
|
|
7672
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
deploy.yml
|
7597
|
5
|
0
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-03-24T11:01:20+08:00","updated_at":"2026-03-24T11:01:20+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":7667,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7667","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7667","display_title":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7592,"head_sha":"db7f39e63151b9c065646855287b8be73e13649b","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":1845515,"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-24T11:03:52+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-24T11:06:26+08:00","completed_at":"2026-03-24T11:07:01+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":1845515,"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-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
17
|
1774321790
|
1774321882
|
0
|
1774321785
|
1774321883
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
7673
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7598
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"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":1958148,"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-24T10:14:22+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
|
1774321883
|
1774321884
|
0
|
1774321840
|
1774321884
|
|
|
0
|
Edit
Delete
|
|
7674
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
deploy.yml
|
7599
|
5
|
0
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-03-24T11:01:20+08:00","updated_at":"2026-03-24T11:01:20+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":7667,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7667","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7667","display_title":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7592,"head_sha":"db7f39e63151b9c065646855287b8be73e13649b","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":1845515,"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-24T11:03:52+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-24T11:06:26+08:00","completed_at":"2026-03-24T11:07:01+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":1845515,"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-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
40
|
1774321885
|
1774321936
|
0
|
1774321883
|
1774321936
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
7675
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7600
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"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":1958148,"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-24T10:14:22+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
|
1774322140
|
1774322140
|
0
|
1774322140
|
1774322140
|
|
|
0
|
Edit
Delete
|
|
7676
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7601
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"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":1958148,"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-24T10:14:22+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
|
1774322440
|
1774322440
|
0
|
1774322440
|
1774322440
|
|
|
0
|
Edit
Delete
|
|
7677
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7602
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"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":1958148,"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-24T10:14:22+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
|
1774322740
|
1774322740
|
0
|
1774322740
|
1774322740
|
|
|
0
|
Edit
Delete
|
|
7678
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7603
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"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":1958148,"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-24T10:14:22+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
|
1774323040
|
1774323040
|
0
|
1774323040
|
1774323040
|
|
|
0
|
Edit
Delete
|
|
7679
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7604
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"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":1958148,"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-24T10:14:22+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
|
1774323340
|
1774323340
|
0
|
1774323340
|
1774323340
|
|
|
0
|
Edit
Delete
|
|
7680
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7605
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"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":1958148,"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-24T10:14:22+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
|
1774323640
|
1774323640
|
0
|
1774323640
|
1774323640
|
|
|
0
|
Edit
Delete
|
|
7681
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7606
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"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":1958148,"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-24T10:14:22+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
|
1774323940
|
1774323940
|
0
|
1774323940
|
1774323940
|
|
|
0
|
Edit
Delete
|
|
7682
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7607
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"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":1958148,"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-24T10:14:22+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
|
1774324240
|
1774324240
|
0
|
1774324240
|
1774324240
|
|
|
0
|
Edit
Delete
|
|
7683
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7608
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"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":1958148,"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-24T10:14:22+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
|
1774324540
|
1774324540
|
0
|
1774324540
|
1774324540
|
|
|
0
|
Edit
Delete
|
|
7684
|
fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复
|
6
|
5
|
health-check.yml
|
7609
|
-2
|
133
|
refs/heads/main
|
db7f39e63151b9c065646855287b8be73e13649b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dbf34b08bbb60650d15b0c55262dbfe8d0a3a655","after":"db7f39e63151b9c065646855287b8be73e13649b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/dbf34b08bbb60650d15b0c55262dbfe8d0a3a655...db7f39e63151b9c065646855287b8be73e13649b","commits":[{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"db7f39e63151b9c065646855287b8be73e13649b","message":"fix: Phase 1-3 全面治理 — 26项安全+性能+架构+类型+测试修复\n\nPhase 1 (P0 紧急修复):\n- BizCodePrefix 去重: LVS→LSC(话术), AST→ALS(联盟结算)\n- ORDER_TRANSITIONS 对齐 XState: 移除4个非法转换路径\n- 路由契约审计脚本修复: 正则支持模板字符串+排除函数调用 (0%→99.23%)\n- Kafka 消费者 DLQ+retry: attribution/campaign-effectiveness/marketing-workflow\n\nPhase 2 (P1 核心治理):\n- 高频表索引补充: 5表9条复合索引 (lead_events/lead_score_history/payment_plans等)\n- CI 覆盖率门禁: vitest --coverage 65%阈值 + GitHub Summary\n- v-permission 核心链路: 10文件22处按钮级权限新增\n- marketing-effectiveness 5层重构: 406行路由→36行标准分层\n\nPhase 3 (P2 质量提升):\n- vue-tsc 类型修复: 592→417 (175个错误清除, ECharts/TagType/FlexRecord)\n- Quote convertToOrder 双层防重: 幂等检查+乐观锁条件更新\n- Contract pending_sign 超时机制: RECALL撤回+EXPIRE过期状态\n- $queryRawUnsafe→Prisma.sql: 消除SQL注入面+DDL三重防护\n- payments 测试: 6→49用例 (228→839行, 含状态机边界/多租户/金额)\n- Redis pipeline 优化: 3文件5处循环get→mget/pipeline批量\n\n验证: 后端 tsc 0错误 | Prisma validate通过 | 75/75测试全通过 | 路由审计99.23%\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/db7f39e63151b9c065646855287b8be73e13649b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:01:20+08:00","added":[],"removed":[],"modified":[".github/workflows/pr-validation.yml","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/sales.prisma","backend/scripts/audit-route-contract.ts","backend/src/modules/quotes/quote.service.test.ts","backend/vitest.config.ts","frontend/src/api/modules/ai-autopilot.ts","frontend/src/api/modules/attribution.ts","frontend/src/api/modules/livestream-groupbuy-conversion.ts","frontend/src/api/modules/location-assessments.ts","frontend/src/api/modules/multi-touch-attribution.ts","frontend/src/api/modules/quotes.ts","frontend/src/components/business/IMPanel.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/components/responsive/ResponsiveFilterBar.vue","frontend/src/components/responsive/ResponsiveTabs.vue","frontend/src/composables/useDashboardRealtime.ts","frontend/src/composables/useQuickCreateCampaign.ts","frontend/src/i18n/menu-map.ts","frontend/src/utils/echarts.ts","frontend/src/utils/object-guard.ts","frontend/src/views/ai-agents/IMConversations.vue","frontend/src/views/ai-agents/IMIntegrationSettings.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/community-materials/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/leads/Form.vue","frontend/src/views/local-events/Form.vue","frontend/src/views/local-promotion/Form.vue","frontend/src/views/member-benefits/Form.vue","frontend/src/views/member-levels/Form.vue","frontend/src/views/members/Form.vue","frontend/src/views/orders/Form.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/utm-tracking/Form.vue","frontend/src/views/video-content/Form.vue","frontend/src/views/video-publishing/Form.vue","frontend/src/views/video-publishing/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"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":1958148,"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-24T10:14:22+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
|
1774324840
|
1774324840
|
0
|
1774324840
|
1774324840
|
|
|
0
|
Edit
Delete
|
|
7685
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
e2e-tests.yml
|
7610
|
5
|
0
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
20
|
1774325032
|
1774325178
|
0
|
1774325031
|
1774325224
|
|
|
0
|
Edit
Delete
|
|
7686
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
test-pipeline.yml
|
7611
|
5
|
0
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
68
|
1774325181
|
1774325215
|
0
|
1774325031
|
1774325281
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
7687
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7612
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774325215
|
1774325216
|
0
|
1774325140
|
1774325216
|
|
|
0
|
Edit
Delete
|
|
7688
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
test-report.yml
|
7613
|
5
|
0
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
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-24T11:45:35+08:00","updated_at":"2026-03-24T11:45:35+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":7685,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7685","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7685","display_title":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7610,"head_sha":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","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":1845854,"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-24T12:03:52+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-24T12:03:52+08:00","completed_at":"2026-03-24T12:06:18+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":1845854,"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-24T12:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1774325217
|
1774325221
|
0
|
1774325181
|
1774325237
|
|
|
0
|
Edit
Delete
|
|
7689
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
deploy.yml
|
7614
|
5
|
0
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-03-24T11:45:35+08:00","updated_at":"2026-03-24T11:45:35+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":7686,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7686","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7686","display_title":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7611,"head_sha":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","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":1845854,"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-24T12:03:52+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-24T12:06:21+08:00","completed_at":"2026-03-24T12:06:55+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":1845854,"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-24T12:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
26
|
1774325225
|
1774325277
|
0
|
1774325215
|
1774325277
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
7690
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
test-report.yml
|
7615
|
5
|
0
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
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-24T11:45:35+08:00","updated_at":"2026-03-24T11:45:35+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":7685,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7685","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7685","display_title":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7610,"head_sha":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","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":1845854,"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-24T12:03:52+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-24T12:03:52+08:00","completed_at":"2026-03-24T12:06:18+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":1845854,"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-24T12:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1774325239
|
1774325241
|
0
|
1774325224
|
1774325274
|
|
|
0
|
Edit
Delete
|
|
7691
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
deploy.yml
|
7616
|
5
|
0
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-03-24T11:45:35+08:00","updated_at":"2026-03-24T11:45:35+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":7686,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7686","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7686","display_title":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7611,"head_sha":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","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":1845854,"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-24T12:03:52+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-24T12:06:21+08:00","completed_at":"2026-03-24T12:06:55+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":1845854,"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-24T12:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
17
|
1774325278
|
1774325281
|
0
|
1774325277
|
1774325282
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
7692
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
deploy.yml
|
7617
|
5
|
0
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-03-24T11:45:35+08:00","updated_at":"2026-03-24T11:45:35+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":7686,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7686","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7686","display_title":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7611,"head_sha":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","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":1845854,"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-24T12:03:52+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-24T12:06:21+08:00","completed_at":"2026-03-24T12:06:55+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":1845854,"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-24T12:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
12
|
0
|
1774325283
|
0
|
1774325282
|
1774325283
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
7693
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
deploy.yml
|
7618
|
5
|
0
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-03-24T11:45:35+08:00","updated_at":"2026-03-24T11:45:35+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":7686,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/7686","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/7686","display_title":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":7611,"head_sha":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","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":1845854,"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-24T12:03:52+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-24T12:06:21+08:00","completed_at":"2026-03-24T12:06:55+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":1845854,"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-24T12:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1
|
40
|
1774325284
|
1774325305
|
0
|
1774325284
|
1774325305
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
7694
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7619
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774325440
|
1774325440
|
0
|
1774325440
|
1774325440
|
|
|
0
|
Edit
Delete
|
|
7695
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7620
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774325740
|
1774325740
|
0
|
1774325740
|
1774325740
|
|
|
0
|
Edit
Delete
|
|
7696
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7621
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774326040
|
1774326040
|
0
|
1774326040
|
1774326040
|
|
|
0
|
Edit
Delete
|
|
7697
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7622
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774326340
|
1774326340
|
0
|
1774326340
|
1774326340
|
|
|
0
|
Edit
Delete
|
|
7698
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7623
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774326640
|
1774326640
|
0
|
1774326640
|
1774326640
|
|
|
0
|
Edit
Delete
|
|
7699
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7624
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774326940
|
1774326940
|
0
|
1774326940
|
1774326940
|
|
|
0
|
Edit
Delete
|
|
7700
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7625
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774327240
|
1774327240
|
0
|
1774327240
|
1774327240
|
|
|
0
|
Edit
Delete
|
|
7701
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7626
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774327540
|
1774327540
|
0
|
1774327540
|
1774327540
|
|
|
0
|
Edit
Delete
|
|
7702
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7627
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774327840
|
1774327840
|
0
|
1774327840
|
1774327840
|
|
|
0
|
Edit
Delete
|
|
7703
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7628
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774328140
|
1774328140
|
0
|
1774328140
|
1774328140
|
|
|
0
|
Edit
Delete
|
|
7704
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7629
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774328440
|
1774328440
|
0
|
1774328440
|
1774328440
|
|
|
0
|
Edit
Delete
|
|
7705
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7630
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774328740
|
1774328740
|
0
|
1774328740
|
1774328740
|
|
|
0
|
Edit
Delete
|
|
7706
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7631
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774329040
|
1774329040
|
0
|
1774329040
|
1774329040
|
|
|
0
|
Edit
Delete
|
|
7707
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7632
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774329340
|
1774329340
|
0
|
1774329340
|
1774329340
|
|
|
0
|
Edit
Delete
|
|
7708
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7633
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774329640
|
1774329640
|
0
|
1774329640
|
1774329640
|
|
|
0
|
Edit
Delete
|
|
7709
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7634
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774329940
|
1774329940
|
0
|
1774329940
|
1774329940
|
|
|
0
|
Edit
Delete
|
|
7710
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7635
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774330240
|
1774330240
|
0
|
1774330240
|
1774330240
|
|
|
0
|
Edit
Delete
|
|
7711
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7636
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774330540
|
1774330540
|
0
|
1774330540
|
1774330540
|
|
|
0
|
Edit
Delete
|
|
7712
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7637
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774330840
|
1774330840
|
0
|
1774330840
|
1774330840
|
|
|
0
|
Edit
Delete
|
|
7713
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7638
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774331140
|
1774331140
|
0
|
1774331140
|
1774331140
|
|
|
0
|
Edit
Delete
|
|
7714
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7639
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774331440
|
1774331440
|
0
|
1774331440
|
1774331440
|
|
|
0
|
Edit
Delete
|
|
7715
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7640
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774331740
|
1774331740
|
0
|
1774331740
|
1774331740
|
|
|
0
|
Edit
Delete
|
|
7716
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7641
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774332040
|
1774332040
|
0
|
1774332040
|
1774332040
|
|
|
0
|
Edit
Delete
|
|
7717
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7642
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774332340
|
1774332340
|
0
|
1774332340
|
1774332340
|
|
|
0
|
Edit
Delete
|
|
7718
|
fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化
|
6
|
5
|
health-check.yml
|
7643
|
-2
|
136
|
refs/heads/main
|
81e883dfff9283af39b3dd2aa30e25ae2119e8f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db7f39e63151b9c065646855287b8be73e13649b","after":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/db7f39e63151b9c065646855287b8be73e13649b...81e883dfff9283af39b3dd2aa30e25ae2119e8f0","commits":[{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]}],"total_commits":0,"head_commit":{"id":"81e883dfff9283af39b3dd2aa30e25ae2119e8f0","message":"fix: Phase 4 三线并行治理 — 类型清零+测试扩展+性能深度优化\n\nLine A - 前端类型清零:\n- vue-tsc 错误 417→95 (322个修复, 77%修复率)\n- DataTable/ResponsiveDataTable 泛型约束放宽 (消除~100错误)\n- inventory/products/shipments API 类型补全 (消除~80错误)\n- useListPage 泛型显式化 + queryParams→filters 修正\n- FilterField 类型扩展 + 多处 as unknown as 桥接\n\nLine B - 测试覆盖扩展:\n- 14个无测试模块补充: 11模块14文件166用例全通过\n (channel-analytics/cache-warmup/realtime/workflow-generator/process/search等)\n- Lead-to-Cash E2E: 2文件29用例 (完整链路+状态机流转)\n- 状态机边界测试: 709用例全通过 (6核心实体终态/死状态/非法转换/可达性)\n\nLine C - 性能深度优化:\n- 剩余N+1修复: 5文件11处 (marketing-tools/price-books/cash-flow/knowledge-vector/lead-import)\n- Outbox原子化: tickets 4文件17方法 $transaction+tx (38测试通过)\n (opportunities/quotes/contracts/orders 已正确实现,无需改造)\n\n验证: 后端tsc 0错误 | 709状态机测试通过 | 166新增单测通过\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/81e883dfff9283af39b3dd2aa30e25ae2119e8f0","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-24T11:45:35+08:00","added":["backend/src/modules/cache-warmup/cache-warmup.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/realtime/enhanced-push.service.test.ts","backend/src/modules/realtime/event-storm-protection.service.test.ts","backend/src/modules/realtime/message-aggregator.service.test.ts","backend/src/modules/realtime/message-template.service.test.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/settings/settings.service.test.ts","backend/src/modules/workflow-generator/utils/transformer.test.ts","backend/src/modules/workflow-generator/utils/validator.test.ts","backend/src/modules/workflow-generator/workflow-generator.service.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","e2e/tests/business-flows/lead-to-cash.spec.ts","e2e/tests/business-flows/state-machine-flows.spec.ts"],"removed":[],"modified":["backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/tickets/ticket-knowledge.service.ts","backend/src/modules/tickets/ticket-operations.service.ts","backend/src/modules/tickets/ticket-queries.service.ts","backend/src/modules/tickets/ticket.service.ts","frontend/src/api/modules/inventory.ts","frontend/src/api/modules/marketing.ts","frontend/src/api/modules/products.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/shipments.ts","frontend/src/components/common/DataTable.vue","frontend/src/components/common/ResponsiveDataTable.vue","frontend/src/types/common.ts","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ai-agents/Events.vue","frontend/src/views/ai-agents/Queue.vue","frontend/src/views/ai-copilot/Index.vue","frontend/src/views/assets/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/CountDetail.vue","frontend/src/views/inventory/Counts.vue","frontend/src/views/inventory/Snapshots.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/partners/Index.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/rma/Index.vue","frontend/src/views/security-settings/Index.vue","frontend/src/views/segments/Index.vue","frontend/src/views/shipments/Detail.vue","frontend/src/views/shipments/Form.vue","frontend/src/views/shipments/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/system/params/Index.vue","frontend/src/views/tickets/Gantt.vue","frontend/src/views/tickets/Index.vue","frontend/src/views/utm-tracking/Form.vue"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1845515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-24T11:03:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1774332640
|
1774332640
|
0
|
1774332640
|
1774332640
|
|
|
0
|
Edit
Delete
|