|
9901
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9825
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774920019
|
1774920020
|
0
|
1774920018
|
1774920020
|
|
|
0
|
Edit
Delete
|
|
9902
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9826
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774920319
|
1774920320
|
0
|
1774920318
|
1774920320
|
|
|
0
|
Edit
Delete
|
|
9903
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9827
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774920619
|
1774920620
|
0
|
1774920618
|
1774920620
|
|
|
0
|
Edit
Delete
|
|
9904
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9828
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774920919
|
1774920920
|
0
|
1774920918
|
1774920920
|
|
|
0
|
Edit
Delete
|
|
9905
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9829
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774921219
|
1774921220
|
0
|
1774921218
|
1774921220
|
|
|
0
|
Edit
Delete
|
|
9906
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9830
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774921519
|
1774921520
|
0
|
1774921518
|
1774921520
|
|
|
0
|
Edit
Delete
|
|
9907
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9831
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774921819
|
1774921820
|
0
|
1774921818
|
1774921820
|
|
|
0
|
Edit
Delete
|
|
9908
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9832
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774922119
|
1774922120
|
0
|
1774922118
|
1774922120
|
|
|
0
|
Edit
Delete
|
|
9909
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9833
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774922422
|
1774922422
|
0
|
1774922418
|
1774922422
|
|
|
0
|
Edit
Delete
|
|
9910
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9834
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774922719
|
1774922719
|
0
|
1774922718
|
1774922719
|
|
|
0
|
Edit
Delete
|
|
9911
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9835
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774923019
|
1774923019
|
0
|
1774923018
|
1774923019
|
|
|
0
|
Edit
Delete
|
|
9912
|
Fix release gate type regressions in dashboard and Fix release gate type regressions in dashboard and query schemas...
|
6
|
5
|
health-check.yml
|
9836
|
-2
|
238
|
refs/heads/main
|
fb960500246fc412cf02a20cc0b316e9100eeb7f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a","after":"fb960500246fc412cf02a20cc0b316e9100eeb7f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1ce3f3ee5a8099af3c2b00d92ab83aa31d4d803a...fb960500246fc412cf02a20cc0b316e9100eeb7f","commits":[{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"fb960500246fc412cf02a20cc0b316e9100eeb7f","message":"Fix release gate type regressions in dashboard and query schemas\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb960500246fc412cf02a20cc0b316e9100eeb7f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-03-30T21:10:48+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["reports/api-route-contract-audit.latest.json","reports/api-route-contract-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":1905979,"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":2,"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-30T20:59:37+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
|
1774923319
|
1774923322
|
0
|
1774923318
|
1774923322
|
|
|
0
|
Edit
Delete
|
|
9913
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
e2e-tests.yml
|
9837
|
5
|
0
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774923481
|
1774924033
|
0
|
1774923479
|
1774926173
|
|
|
0
|
Edit
Delete
|
|
9914
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
test-pipeline.yml
|
9838
|
5
|
0
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774924034
|
1774925150
|
0
|
1774923480
|
1774927462
|
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
|
|
9915
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9839
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774925151
|
1774925151
|
0
|
1774923618
|
1774925151
|
|
|
0
|
Edit
Delete
|
|
9916
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9840
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774925153
|
1774925153
|
0
|
1774923918
|
1774925153
|
|
|
0
|
Edit
Delete
|
|
9917
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
test-report.yml
|
9841
|
5
|
0
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
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-31T10:08:45+08:00","updated_at":"2026-03-31T10:08:45+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":9913,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/9913","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/9913","display_title":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":9837,"head_sha":"9901c454467cf62d4e127620f218a97bcca01629","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":3546146,"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":2,"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-31T10:18:02+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-31T10:18:01+08:00","completed_at":"2026-03-31T10:27:13+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":3546146,"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":2,"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-31T10:18:02+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
|
1774926174
|
1774926265
|
0
|
1774924033
|
1774927311
|
|
|
0
|
Edit
Delete
|
|
9918
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9842
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774926265
|
1774926265
|
0
|
1774924218
|
1774926265
|
|
|
0
|
Edit
Delete
|
|
9919
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9843
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774926267
|
1774926267
|
0
|
1774924518
|
1774926267
|
|
|
0
|
Edit
Delete
|
|
9920
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9844
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774926269
|
1774926269
|
0
|
1774924818
|
1774926269
|
|
|
0
|
Edit
Delete
|
|
9921
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9845
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774926271
|
1774926271
|
0
|
1774925118
|
1774926271
|
|
|
0
|
Edit
Delete
|
|
9922
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
deploy.yml
|
9846
|
5
|
0
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
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-31T10:08:45+08:00","updated_at":"2026-03-31T10:08:45+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":9914,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/9914","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/9914","display_title":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":9838,"head_sha":"9901c454467cf62d4e127620f218a97bcca01629","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":3546146,"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":2,"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-31T10:18:02+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-31T10:27:14+08:00","completed_at":"2026-03-31T10:45:50+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":3546146,"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":2,"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-31T10:18:02+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
|
1774926273
|
1774927430
|
0
|
1774925150
|
1774927431
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
9923
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9847
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774926283
|
1774926283
|
0
|
1774925418
|
1774926283
|
|
|
0
|
Edit
Delete
|
|
9924
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9848
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774926285
|
1774926285
|
0
|
1774925718
|
1774926285
|
|
|
0
|
Edit
Delete
|
|
9925
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9849
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774926287
|
1774926287
|
0
|
1774926018
|
1774926287
|
|
|
0
|
Edit
Delete
|
|
9926
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
test-report.yml
|
9850
|
5
|
0
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
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-31T10:08:45+08:00","updated_at":"2026-03-31T10:08:45+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":9913,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/9913","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/9913","display_title":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":9837,"head_sha":"9901c454467cf62d4e127620f218a97bcca01629","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":3546146,"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":2,"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-31T10:18:02+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-31T10:18:01+08:00","completed_at":"2026-03-31T10:27:13+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":3546146,"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":2,"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-31T10:18:02+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
|
1774926289
|
1774927308
|
0
|
1774926174
|
1774927425
|
|
|
0
|
Edit
Delete
|
|
9927
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9851
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774927415
|
1774927415
|
0
|
1774926318
|
1774927415
|
|
|
0
|
Edit
Delete
|
|
9928
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9852
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774927417
|
1774927417
|
0
|
1774926618
|
1774927417
|
|
|
0
|
Edit
Delete
|
|
9929
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9853
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774927419
|
1774927419
|
0
|
1774926918
|
1774927419
|
|
|
0
|
Edit
Delete
|
|
9930
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9854
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774927421
|
1774927421
|
0
|
1774927218
|
1774927421
|
|
|
0
|
Edit
Delete
|
|
9931
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
deploy.yml
|
9855
|
5
|
0
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
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-31T10:08:45+08:00","updated_at":"2026-03-31T10:08:45+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":9914,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/9914","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/9914","display_title":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":9838,"head_sha":"9901c454467cf62d4e127620f218a97bcca01629","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":3546146,"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":2,"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-31T10:18:02+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-31T10:27:14+08:00","completed_at":"2026-03-31T10:45:50+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":3546146,"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":2,"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-31T10:18:02+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
|
1774927462
|
0
|
1774927431
|
1774927463
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
9932
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
deploy.yml
|
9856
|
5
|
0
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
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-31T10:08:45+08:00","updated_at":"2026-03-31T10:08:45+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":9914,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/9914","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/9914","display_title":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":9838,"head_sha":"9901c454467cf62d4e127620f218a97bcca01629","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":3546146,"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":2,"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-31T10:18:02+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-31T10:27:14+08:00","completed_at":"2026-03-31T10:45:50+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":3546146,"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":2,"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-31T10:18:02+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
|
1774927464
|
1774927512
|
0
|
1774927463
|
1774927512
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
9933
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9857
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774927518
|
1774927519
|
0
|
1774927518
|
1774927519
|
|
|
0
|
Edit
Delete
|
|
9934
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9858
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774927818
|
1774927819
|
0
|
1774927818
|
1774927819
|
|
|
0
|
Edit
Delete
|
|
9935
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9859
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774928118
|
1774928119
|
0
|
1774928118
|
1774928119
|
|
|
0
|
Edit
Delete
|
|
9936
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9860
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774928418
|
1774928419
|
0
|
1774928418
|
1774928419
|
|
|
0
|
Edit
Delete
|
|
9937
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9861
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774928718
|
1774928719
|
0
|
1774928718
|
1774928719
|
|
|
0
|
Edit
Delete
|
|
9938
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9862
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774929018
|
1774929019
|
0
|
1774929018
|
1774929019
|
|
|
0
|
Edit
Delete
|
|
9939
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9863
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774929318
|
1774929319
|
0
|
1774929318
|
1774929319
|
|
|
0
|
Edit
Delete
|
|
9940
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9864
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774929618
|
1774929619
|
0
|
1774929618
|
1774929619
|
|
|
0
|
Edit
Delete
|
|
9941
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9865
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774929918
|
1774929919
|
0
|
1774929918
|
1774929919
|
|
|
0
|
Edit
Delete
|
|
9942
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9866
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774930218
|
1774930219
|
0
|
1774930218
|
1774930219
|
|
|
0
|
Edit
Delete
|
|
9943
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9867
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774930518
|
1774930519
|
0
|
1774930518
|
1774930519
|
|
|
0
|
Edit
Delete
|
|
9944
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9868
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774930818
|
1774930819
|
0
|
1774930818
|
1774930819
|
|
|
0
|
Edit
Delete
|
|
9945
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9869
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774931118
|
1774931119
|
0
|
1774931118
|
1774931119
|
|
|
0
|
Edit
Delete
|
|
9946
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9870
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774931418
|
1774931419
|
0
|
1774931418
|
1774931419
|
|
|
0
|
Edit
Delete
|
|
9947
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9871
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774931718
|
1774931719
|
0
|
1774931718
|
1774931719
|
|
|
0
|
Edit
Delete
|
|
9948
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9872
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774932018
|
1774932019
|
0
|
1774932018
|
1774932019
|
|
|
0
|
Edit
Delete
|
|
9949
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9873
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774932318
|
1774932319
|
0
|
1774932318
|
1774932319
|
|
|
0
|
Edit
Delete
|
|
9950
|
feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施...
|
6
|
5
|
health-check.yml
|
9874
|
-2
|
241
|
refs/heads/main
|
9901c454467cf62d4e127620f218a97bcca01629
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fb960500246fc412cf02a20cc0b316e9100eeb7f","after":"9901c454467cf62d4e127620f218a97bcca01629","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fb960500246fc412cf02a20cc0b316e9100eeb7f...9901c454467cf62d4e127620f218a97bcca01629","commits":[{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},{"id":"17eeeeca6840d3d7f84c9a6a381db62de7119483","message":"feat(harness): add Harness Engineering v2.0 assets\n\nAdd 5 audit scripts (field-payload, enum-consistency, formrules-zod,\nresponse-columns, module-coverage), P0 chain E2E tests (53 cases),\nSLO monitoring configs, health check service, and vitest workspace\nunified configuration.\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/17eeeeca6840d3d7f84c9a6a381db62de7119483","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:07:36+08:00","added":[".claude/commands/juhi/harness.md",".claude/skills/juhi/harness.md","backend/src/shared/services/health-check.service.ts","backend/vitest.workspace.ts","deploy/monitoring/alerting-rules.yml","deploy/monitoring/grafana-dashboard-slo.json","docs/operations/slo-definitions.md","e2e/helpers/p0-chain.helper.ts","e2e/tests/p0-chain/boundary-guards.spec.ts","e2e/tests/p0-chain/lead-to-cash.spec.ts","e2e/tests/p0-chain/state-transitions.spec.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/response-columns-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-response-columns.ts"],"removed":[],"modified":[]},{"id":"89e359306a90610d4d24002ab2f8eacc70ee3cb6","message":"feat(ai-agents): 完善模块全栈对齐 + 修复多租户隔离漏洞\n\n- fix(CRITICAL): multi-agent-collaboration 两处跨租户写入漏洞\n - updateSessionStatus 缺失 tenant_id 导致可跨租户篡改 session\n - addGroupMember 缺失 tenant_id 导致可跨租户修改 agent 协作标记\n- fix(Prisma↔Zod): workflow description .max(500)→.max(2000) 对齐 VarChar(2000)\n- fix(Zod): inputData 从 z.any() 改为 z.record(z.unknown()) (2处)\n- feat(statuses.ts): 补充 AI Agent/Task/Workflow 三组状态枚举+配置+转换规则\n- feat(types): 消除 7 处 any 类型,补充完整接口定义\n - AIAgentTrainingData/AIAgentMetrics/ListTrainingDataParams 等\n - CreateWorkflowInput steps/triggerConfig/errorHandling\n - IM 接口索引签名 any→unknown\n- feat(types): 新增 AITaskType(18值)/AITaskPriority(4值) 严格枚举\n- feat(types): AI_TASK_TYPE_OPTIONS 从 2 个补全到 18 个\n- feat(types): AI_TASK_STATUS_OPTIONS 补充 recovering 状态\n- feat(types): AI_AGENT_TYPE_OPTIONS 补充 ai_lead_collector\n- fix(types): CreateAIAgentInput.modelConfig 必填→可选对齐 Zod\n- fix(types): CreateTrainingDataInput.title 必填→可选对齐 Zod\n- fix(types): ListAITasksParams 补充 reviewStatus 字段\n- fix(types): WorkflowStepDefinition 字段名对齐 Zod (stepId/stepType/nextSteps)\n- refactor(router): 清理 458 行注释路由代码\n- feat(store): 补充 fetchOverviewStats/batchAssignTasks 方法\n- feat(llm-analyzer): 扩展为统一导出视觉/语义/转换三类 LLM 能力\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/89e359306a90610d4d24002ab2f8eacc70ee3cb6","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T09:57:09+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/ai-agent.schema.ts","backend/src/modules/ai-agents/services/llm-analyzer.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/shared/constants/statuses.ts","frontend/src/router/modules/ai-agents.ts","frontend/src/stores/ai-agent.ts","frontend/src/types/ai-agent.ts"]}],"total_commits":0,"head_commit":{"id":"9901c454467cf62d4e127620f218a97bcca01629","message":"feat(harness): Harness Engineering v2.0 — 字段对齐四维清零 + 三层门禁 + 基础设施\n\n- 字段对齐四维清零: field-payload / enum-consistency / formrules-zod / response-columns 全部 0 ERROR\n- pre-commit 三层门禁: Fast(\u003c8s) / Smart(条件触发) / Deep(CI)\n- env Zod 校验: ~70 变量 fail-fast,生产环境加严\n- vitest workspace 统一: 5 套配置 → 1 套 (unit/api/integration)\n- process-adapter 类型修复: unknown → string 安全转换\n- shared/package.json: 新增 types/* 通配符导出\n- 152 文件变更,2642 插入 / 724 删除\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9901c454467cf62d4e127620f218a97bcca01629","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T10:08:45+08:00","added":[],"removed":[".claude/worktrees/crazy-pasteur",".claude/worktrees/dazzling-ramanujan",".claude/worktrees/exciting-mahavira",".claude/worktrees/nice-bassi",".claude/worktrees/vibrant-mestorf",".claude/worktrees/wonderful-darwin","e2e/playwright-report/data/5987d960550c1a694ee41c269f956510f82699ea.png","e2e/playwright-report/data/e6031c958be626746b5d7288737726de75f57e58.md"],"modified":[".claude/settings.json",".husky/pre-commit","AGENTS.md","CLAUDE.md","Makefile","backend/.env.example","backend/package.json","backend/scripts/run-api-suite.ts","backend/src/config/env.ts","backend/src/modules/ad-audiences/ad-audience.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/alliance-coupons/alliance-coupon.schema.ts","backend/src/modules/alliance-merchants/alliance-merchant.schema.ts","backend/src/modules/alliance-referrals/alliance-referral.schema.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/modules/community-members/community-member.schema.ts","backend/src/modules/community-messages/community-message.schema.ts","backend/src/modules/content-copyright/content-copyright.schema.ts","backend/src/modules/content-review/content-review.schema.ts","backend/src/modules/content-templates/content-template.schema.ts","backend/src/modules/crm-activities/crm-activity.schema.ts","backend/src/modules/devices/asset-activation.schema.ts","backend/src/modules/event-logs/event-logs.schema.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/geo-fences/geo-fences.schema.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.schema.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.schema.ts","backend/src/modules/groupbuy-products/groupbuy-product.schema.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.schema.ts","backend/src/modules/livestream-gifts/livestream-gifts.schema.ts","backend/src/modules/livestream-products/livestream-product.schema.ts","backend/src/modules/livestream-rooms/livestream-room.schema.ts","backend/src/modules/livestream-schedules/livestream-schedule.schema.ts","backend/src/modules/marketing-workflows/marketing-workflow.schema.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/orders/order.schema.ts","backend/src/modules/products/services/product.schema.ts","backend/src/modules/renewals/renewal.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/social-accounts/social-account.schema.ts","backend/src/modules/social-auto-replies/social-auto-reply.schema.ts","backend/src/modules/store-inventory/store-inventory.schema.ts","backend/src/shared/process-core/process-adapter.ts","backend/vitest.api.config.ts","backend/vitest.config.api.ts","backend/vitest.config.ts","backend/vitest.integration.config.ts","backend/vitest.unit.config.ts","docs/governance/baseline-and-experience.md","e2e/package.json","e2e/playwright-report/index.html","e2e/test-results/results.json","frontend/src/api/modules/admin-settings.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-coupons.ts","frontend/src/api/modules/alliance-packages.ts","frontend/src/api/modules/alliance-partners.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/auth.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/community-bots.ts","frontend/src/api/modules/community-tasks.ts","frontend/src/api/modules/content-analytics.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/customer-marketing.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/devices.ts","frontend/src/api/modules/email-templates.ts","frontend/src/api/modules/faults.ts","frontend/src/api/modules/geo-reviews.ts","frontend/src/api/modules/groupbuy-inventory.ts","frontend/src/api/modules/groupbuy-pricing.ts","frontend/src/api/modules/groupbuy-promotions.ts","frontend/src/api/modules/knowledge-capture.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-scoring-ai.ts","frontend/src/api/modules/livestream-gifts.ts","frontend/src/api/modules/livestream-rooms.ts","frontend/src/api/modules/livestream-schedules.ts","frontend/src/api/modules/livestream.ts","frontend/src/api/modules/marketing-automation.ts","frontend/src/api/modules/marketing-workflows.ts","frontend/src/api/modules/menus.ts","frontend/src/api/modules/partners.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/satisfaction.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/store-inventory.ts","frontend/src/api/modules/stores.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/tickets.ts","frontend/src/api/modules/users.ts","frontend/src/stores/orders.ts","frontend/src/types/enums.ts","frontend/src/views/ad-biddings/Form.vue","frontend/src/views/ad-campaigns/Form.vue","frontend/src/views/alliance-partners/Form.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/campaign-targets/Index.vue","frontend/src/views/campaigns/Detail.vue","frontend/src/views/campaigns/Index.vue","frontend/src/views/campaigns/components/StoreSelectionDialog.vue","frontend/src/views/campaigns/wizard/Step4Stores.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/devices/Form.vue","frontend/src/views/disbursements/components/DisbursementFormDialog.vue","frontend/src/views/disbursements/components/ExpenseCategoryFormDialog.vue","frontend/src/views/disbursements/components/ExpenseClaimFormDialog.vue","frontend/src/views/email-marketing/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Assignment.vue","frontend/src/views/leads/Form.vue","frontend/src/views/leads/ScoringRules.vue","frontend/src/views/livestream-rooms/Form.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/livestream/Schedules.vue","frontend/src/views/marketing-content/ContentForm.vue","frontend/src/views/orders/Index.vue","frontend/src/views/partners/Detail.vue","frontend/src/views/partners/Form.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/PlanForm.vue","frontend/src/views/projects/Tasks.vue","frontend/src/views/projects/components/gantt/ProjectGanttToolbar.vue","frontend/src/views/rma/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/sla/Index.vue","frontend/src/views/social-posts/Form.vue","frontend/src/views/stores/Detail.vue","frontend/src/views/stores/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","frontend/src/views/supplier-management/Applications.vue","frontend/src/views/supplier-management/Contracts.vue","frontend/src/views/supplier-management/JBPs.vue","frontend/src/views/supplier-management/Rejections.vue","frontend/src/views/supplier-management/Risks.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/supply-chain/Index.vue","package.json","reports/commander-workset.latest.json","scripts/lib/governance-commander.ts","shared/package.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1906045,"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":2,"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-30T21:11:03+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
|
1774932618
|
1774932619
|
0
|
1774932618
|
1774932619
|
|
|
0
|
Edit
Delete
|