|
13568
|
Merge remote-tracking branch 'origin/codex/fin Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'...
|
6
|
5
|
health-check.yml
|
13491
|
-2
|
259
|
refs/heads/main
|
9d69e1960ec649a49c0c6f307c0fc197f47ee4c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"40dae5944f158653af8288a3f38b6c97e8ce9f06","after":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/40dae5944f158653af8288a3f38b6c97e8ce9f06...9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","commits":[{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},{"id":"0152aae7b8ff9440c5f4e7aad113420208e6c304","message":"Merge remote-tracking branch 'origin/codex/design-scalable-autopilot-os-architecture'\n\n# Conflicts:\n#\te2e/agents/playwright-agent/index.ts\n#\te2e/agents/playwright-agent/inspectors/index.ts\n#\te2e/agents/playwright-agent/reporters/backend-reporter.ts\n#\te2e/package.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0152aae7b8ff9440c5f4e7aad113420208e6c304","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:05+08:00","added":[],"removed":[],"modified":[]},{"id":"e2587fae3d50e6ef7c30450199abd1bfc910a016","message":"test(finance): add finance mainline smoke and harden invoice detail formatting","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e2587fae3d50e6ef7c30450199abd1bfc910a016","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T13:47:05+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["frontend/src/views/invoices/Detail.vue"]},{"id":"803578ebec2d6f4c0d00335c1f5c61067112d923","message":"feat(e2e): add playwright agent mvp skeleton","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/803578ebec2d6f4c0d00335c1f5c61067112d923","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-19T19:55:36+08:00","added":["e2e/agents/playwright-agent/README.md","e2e/agents/playwright-agent/__tests__/playwright-agent.unit.test.ts","e2e/agents/playwright-agent/artifacts/artifact-writer.ts","e2e/agents/playwright-agent/auth/auth-provider.ts","e2e/agents/playwright-agent/auth/storage-state-auth.ts","e2e/agents/playwright-agent/constants/diagnosis.ts","e2e/agents/playwright-agent/constants/status.ts","e2e/agents/playwright-agent/constants/timeouts.ts","e2e/agents/playwright-agent/core/action-runner.ts","e2e/agents/playwright-agent/core/browser-manager.ts","e2e/agents/playwright-agent/core/execution-engine.ts","e2e/agents/playwright-agent/core/retry-engine.ts","e2e/agents/playwright-agent/core/session-factory.ts","e2e/agents/playwright-agent/index.ts","e2e/agents/playwright-agent/inspectors/base-inspector.ts","e2e/agents/playwright-agent/inspectors/booking-inspector.ts","e2e/agents/playwright-agent/inspectors/dashboard-inspector.ts","e2e/agents/playwright-agent/inspectors/index.ts","e2e/agents/playwright-agent/inspectors/payment-inspector.ts","e2e/agents/playwright-agent/observers/console-observer.ts","e2e/agents/playwright-agent/observers/network-observer.ts","e2e/agents/playwright-agent/observers/page-probe.ts","e2e/agents/playwright-agent/reporters/backend-reporter.ts","e2e/agents/playwright-agent/reporters/json-reporter.ts","e2e/agents/playwright-agent/resolvers/selector-resolver.ts","e2e/agents/playwright-agent/types/diagnosis.ts","e2e/agents/playwright-agent/types/execution-plan.ts","e2e/agents/playwright-agent/types/execution-result.ts","e2e/agents/playwright-agent/types/execution-step.ts","e2e/agents/playwright-agent/types/inspector.ts","e2e/agents/playwright-agent/types/runtime.ts"],"removed":[],"modified":["e2e/package.json"]}],"total_commits":0,"head_commit":{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},"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":5204515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T09:40:13+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
|
1775999450
|
1775999451
|
0
|
1775999450
|
1775999451
|
|
|
0
|
Edit
Delete
|
|
13569
|
Merge remote-tracking branch 'origin/codex/fin Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'...
|
6
|
5
|
health-check.yml
|
13492
|
-2
|
259
|
refs/heads/main
|
9d69e1960ec649a49c0c6f307c0fc197f47ee4c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"40dae5944f158653af8288a3f38b6c97e8ce9f06","after":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/40dae5944f158653af8288a3f38b6c97e8ce9f06...9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","commits":[{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},{"id":"0152aae7b8ff9440c5f4e7aad113420208e6c304","message":"Merge remote-tracking branch 'origin/codex/design-scalable-autopilot-os-architecture'\n\n# Conflicts:\n#\te2e/agents/playwright-agent/index.ts\n#\te2e/agents/playwright-agent/inspectors/index.ts\n#\te2e/agents/playwright-agent/reporters/backend-reporter.ts\n#\te2e/package.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0152aae7b8ff9440c5f4e7aad113420208e6c304","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:05+08:00","added":[],"removed":[],"modified":[]},{"id":"e2587fae3d50e6ef7c30450199abd1bfc910a016","message":"test(finance): add finance mainline smoke and harden invoice detail formatting","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e2587fae3d50e6ef7c30450199abd1bfc910a016","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T13:47:05+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["frontend/src/views/invoices/Detail.vue"]},{"id":"803578ebec2d6f4c0d00335c1f5c61067112d923","message":"feat(e2e): add playwright agent mvp skeleton","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/803578ebec2d6f4c0d00335c1f5c61067112d923","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-19T19:55:36+08:00","added":["e2e/agents/playwright-agent/README.md","e2e/agents/playwright-agent/__tests__/playwright-agent.unit.test.ts","e2e/agents/playwright-agent/artifacts/artifact-writer.ts","e2e/agents/playwright-agent/auth/auth-provider.ts","e2e/agents/playwright-agent/auth/storage-state-auth.ts","e2e/agents/playwright-agent/constants/diagnosis.ts","e2e/agents/playwright-agent/constants/status.ts","e2e/agents/playwright-agent/constants/timeouts.ts","e2e/agents/playwright-agent/core/action-runner.ts","e2e/agents/playwright-agent/core/browser-manager.ts","e2e/agents/playwright-agent/core/execution-engine.ts","e2e/agents/playwright-agent/core/retry-engine.ts","e2e/agents/playwright-agent/core/session-factory.ts","e2e/agents/playwright-agent/index.ts","e2e/agents/playwright-agent/inspectors/base-inspector.ts","e2e/agents/playwright-agent/inspectors/booking-inspector.ts","e2e/agents/playwright-agent/inspectors/dashboard-inspector.ts","e2e/agents/playwright-agent/inspectors/index.ts","e2e/agents/playwright-agent/inspectors/payment-inspector.ts","e2e/agents/playwright-agent/observers/console-observer.ts","e2e/agents/playwright-agent/observers/network-observer.ts","e2e/agents/playwright-agent/observers/page-probe.ts","e2e/agents/playwright-agent/reporters/backend-reporter.ts","e2e/agents/playwright-agent/reporters/json-reporter.ts","e2e/agents/playwright-agent/resolvers/selector-resolver.ts","e2e/agents/playwright-agent/types/diagnosis.ts","e2e/agents/playwright-agent/types/execution-plan.ts","e2e/agents/playwright-agent/types/execution-result.ts","e2e/agents/playwright-agent/types/execution-step.ts","e2e/agents/playwright-agent/types/inspector.ts","e2e/agents/playwright-agent/types/runtime.ts"],"removed":[],"modified":["e2e/package.json"]}],"total_commits":0,"head_commit":{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},"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":5204515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T09:40:13+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
|
1775999750
|
1775999751
|
0
|
1775999750
|
1775999751
|
|
|
0
|
Edit
Delete
|
|
13570
|
Merge remote-tracking branch 'origin/codex/fin Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'...
|
6
|
5
|
health-check.yml
|
13493
|
-2
|
259
|
refs/heads/main
|
9d69e1960ec649a49c0c6f307c0fc197f47ee4c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"40dae5944f158653af8288a3f38b6c97e8ce9f06","after":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/40dae5944f158653af8288a3f38b6c97e8ce9f06...9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","commits":[{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},{"id":"0152aae7b8ff9440c5f4e7aad113420208e6c304","message":"Merge remote-tracking branch 'origin/codex/design-scalable-autopilot-os-architecture'\n\n# Conflicts:\n#\te2e/agents/playwright-agent/index.ts\n#\te2e/agents/playwright-agent/inspectors/index.ts\n#\te2e/agents/playwright-agent/reporters/backend-reporter.ts\n#\te2e/package.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0152aae7b8ff9440c5f4e7aad113420208e6c304","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:05+08:00","added":[],"removed":[],"modified":[]},{"id":"e2587fae3d50e6ef7c30450199abd1bfc910a016","message":"test(finance): add finance mainline smoke and harden invoice detail formatting","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e2587fae3d50e6ef7c30450199abd1bfc910a016","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T13:47:05+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["frontend/src/views/invoices/Detail.vue"]},{"id":"803578ebec2d6f4c0d00335c1f5c61067112d923","message":"feat(e2e): add playwright agent mvp skeleton","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/803578ebec2d6f4c0d00335c1f5c61067112d923","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-19T19:55:36+08:00","added":["e2e/agents/playwright-agent/README.md","e2e/agents/playwright-agent/__tests__/playwright-agent.unit.test.ts","e2e/agents/playwright-agent/artifacts/artifact-writer.ts","e2e/agents/playwright-agent/auth/auth-provider.ts","e2e/agents/playwright-agent/auth/storage-state-auth.ts","e2e/agents/playwright-agent/constants/diagnosis.ts","e2e/agents/playwright-agent/constants/status.ts","e2e/agents/playwright-agent/constants/timeouts.ts","e2e/agents/playwright-agent/core/action-runner.ts","e2e/agents/playwright-agent/core/browser-manager.ts","e2e/agents/playwright-agent/core/execution-engine.ts","e2e/agents/playwright-agent/core/retry-engine.ts","e2e/agents/playwright-agent/core/session-factory.ts","e2e/agents/playwright-agent/index.ts","e2e/agents/playwright-agent/inspectors/base-inspector.ts","e2e/agents/playwright-agent/inspectors/booking-inspector.ts","e2e/agents/playwright-agent/inspectors/dashboard-inspector.ts","e2e/agents/playwright-agent/inspectors/index.ts","e2e/agents/playwright-agent/inspectors/payment-inspector.ts","e2e/agents/playwright-agent/observers/console-observer.ts","e2e/agents/playwright-agent/observers/network-observer.ts","e2e/agents/playwright-agent/observers/page-probe.ts","e2e/agents/playwright-agent/reporters/backend-reporter.ts","e2e/agents/playwright-agent/reporters/json-reporter.ts","e2e/agents/playwright-agent/resolvers/selector-resolver.ts","e2e/agents/playwright-agent/types/diagnosis.ts","e2e/agents/playwright-agent/types/execution-plan.ts","e2e/agents/playwright-agent/types/execution-result.ts","e2e/agents/playwright-agent/types/execution-step.ts","e2e/agents/playwright-agent/types/inspector.ts","e2e/agents/playwright-agent/types/runtime.ts"],"removed":[],"modified":["e2e/package.json"]}],"total_commits":0,"head_commit":{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},"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":5204515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T09:40:13+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
|
1776000050
|
1776000051
|
0
|
1776000050
|
1776000051
|
|
|
0
|
Edit
Delete
|
|
13571
|
Merge remote-tracking branch 'origin/codex/fin Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'...
|
6
|
5
|
health-check.yml
|
13494
|
-2
|
259
|
refs/heads/main
|
9d69e1960ec649a49c0c6f307c0fc197f47ee4c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"40dae5944f158653af8288a3f38b6c97e8ce9f06","after":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/40dae5944f158653af8288a3f38b6c97e8ce9f06...9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","commits":[{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},{"id":"0152aae7b8ff9440c5f4e7aad113420208e6c304","message":"Merge remote-tracking branch 'origin/codex/design-scalable-autopilot-os-architecture'\n\n# Conflicts:\n#\te2e/agents/playwright-agent/index.ts\n#\te2e/agents/playwright-agent/inspectors/index.ts\n#\te2e/agents/playwright-agent/reporters/backend-reporter.ts\n#\te2e/package.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0152aae7b8ff9440c5f4e7aad113420208e6c304","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:05+08:00","added":[],"removed":[],"modified":[]},{"id":"e2587fae3d50e6ef7c30450199abd1bfc910a016","message":"test(finance): add finance mainline smoke and harden invoice detail formatting","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e2587fae3d50e6ef7c30450199abd1bfc910a016","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T13:47:05+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["frontend/src/views/invoices/Detail.vue"]},{"id":"803578ebec2d6f4c0d00335c1f5c61067112d923","message":"feat(e2e): add playwright agent mvp skeleton","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/803578ebec2d6f4c0d00335c1f5c61067112d923","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-19T19:55:36+08:00","added":["e2e/agents/playwright-agent/README.md","e2e/agents/playwright-agent/__tests__/playwright-agent.unit.test.ts","e2e/agents/playwright-agent/artifacts/artifact-writer.ts","e2e/agents/playwright-agent/auth/auth-provider.ts","e2e/agents/playwright-agent/auth/storage-state-auth.ts","e2e/agents/playwright-agent/constants/diagnosis.ts","e2e/agents/playwright-agent/constants/status.ts","e2e/agents/playwright-agent/constants/timeouts.ts","e2e/agents/playwright-agent/core/action-runner.ts","e2e/agents/playwright-agent/core/browser-manager.ts","e2e/agents/playwright-agent/core/execution-engine.ts","e2e/agents/playwright-agent/core/retry-engine.ts","e2e/agents/playwright-agent/core/session-factory.ts","e2e/agents/playwright-agent/index.ts","e2e/agents/playwright-agent/inspectors/base-inspector.ts","e2e/agents/playwright-agent/inspectors/booking-inspector.ts","e2e/agents/playwright-agent/inspectors/dashboard-inspector.ts","e2e/agents/playwright-agent/inspectors/index.ts","e2e/agents/playwright-agent/inspectors/payment-inspector.ts","e2e/agents/playwright-agent/observers/console-observer.ts","e2e/agents/playwright-agent/observers/network-observer.ts","e2e/agents/playwright-agent/observers/page-probe.ts","e2e/agents/playwright-agent/reporters/backend-reporter.ts","e2e/agents/playwright-agent/reporters/json-reporter.ts","e2e/agents/playwright-agent/resolvers/selector-resolver.ts","e2e/agents/playwright-agent/types/diagnosis.ts","e2e/agents/playwright-agent/types/execution-plan.ts","e2e/agents/playwright-agent/types/execution-result.ts","e2e/agents/playwright-agent/types/execution-step.ts","e2e/agents/playwright-agent/types/inspector.ts","e2e/agents/playwright-agent/types/runtime.ts"],"removed":[],"modified":["e2e/package.json"]}],"total_commits":0,"head_commit":{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},"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":5204515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T09:40:13+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
|
1776000350
|
1776000351
|
0
|
1776000350
|
1776000351
|
|
|
0
|
Edit
Delete
|
|
13572
|
Merge remote-tracking branch 'origin/codex/fin Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'...
|
6
|
5
|
health-check.yml
|
13495
|
-2
|
259
|
refs/heads/main
|
9d69e1960ec649a49c0c6f307c0fc197f47ee4c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"40dae5944f158653af8288a3f38b6c97e8ce9f06","after":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/40dae5944f158653af8288a3f38b6c97e8ce9f06...9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","commits":[{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},{"id":"0152aae7b8ff9440c5f4e7aad113420208e6c304","message":"Merge remote-tracking branch 'origin/codex/design-scalable-autopilot-os-architecture'\n\n# Conflicts:\n#\te2e/agents/playwright-agent/index.ts\n#\te2e/agents/playwright-agent/inspectors/index.ts\n#\te2e/agents/playwright-agent/reporters/backend-reporter.ts\n#\te2e/package.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0152aae7b8ff9440c5f4e7aad113420208e6c304","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:05+08:00","added":[],"removed":[],"modified":[]},{"id":"e2587fae3d50e6ef7c30450199abd1bfc910a016","message":"test(finance): add finance mainline smoke and harden invoice detail formatting","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e2587fae3d50e6ef7c30450199abd1bfc910a016","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T13:47:05+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["frontend/src/views/invoices/Detail.vue"]},{"id":"803578ebec2d6f4c0d00335c1f5c61067112d923","message":"feat(e2e): add playwright agent mvp skeleton","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/803578ebec2d6f4c0d00335c1f5c61067112d923","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-19T19:55:36+08:00","added":["e2e/agents/playwright-agent/README.md","e2e/agents/playwright-agent/__tests__/playwright-agent.unit.test.ts","e2e/agents/playwright-agent/artifacts/artifact-writer.ts","e2e/agents/playwright-agent/auth/auth-provider.ts","e2e/agents/playwright-agent/auth/storage-state-auth.ts","e2e/agents/playwright-agent/constants/diagnosis.ts","e2e/agents/playwright-agent/constants/status.ts","e2e/agents/playwright-agent/constants/timeouts.ts","e2e/agents/playwright-agent/core/action-runner.ts","e2e/agents/playwright-agent/core/browser-manager.ts","e2e/agents/playwright-agent/core/execution-engine.ts","e2e/agents/playwright-agent/core/retry-engine.ts","e2e/agents/playwright-agent/core/session-factory.ts","e2e/agents/playwright-agent/index.ts","e2e/agents/playwright-agent/inspectors/base-inspector.ts","e2e/agents/playwright-agent/inspectors/booking-inspector.ts","e2e/agents/playwright-agent/inspectors/dashboard-inspector.ts","e2e/agents/playwright-agent/inspectors/index.ts","e2e/agents/playwright-agent/inspectors/payment-inspector.ts","e2e/agents/playwright-agent/observers/console-observer.ts","e2e/agents/playwright-agent/observers/network-observer.ts","e2e/agents/playwright-agent/observers/page-probe.ts","e2e/agents/playwright-agent/reporters/backend-reporter.ts","e2e/agents/playwright-agent/reporters/json-reporter.ts","e2e/agents/playwright-agent/resolvers/selector-resolver.ts","e2e/agents/playwright-agent/types/diagnosis.ts","e2e/agents/playwright-agent/types/execution-plan.ts","e2e/agents/playwright-agent/types/execution-result.ts","e2e/agents/playwright-agent/types/execution-step.ts","e2e/agents/playwright-agent/types/inspector.ts","e2e/agents/playwright-agent/types/runtime.ts"],"removed":[],"modified":["e2e/package.json"]}],"total_commits":0,"head_commit":{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},"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":5204515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T09:40:13+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
|
1776000650
|
1776000651
|
0
|
1776000650
|
1776000651
|
|
|
0
|
Edit
Delete
|
|
13573
|
Merge remote-tracking branch 'origin/codex/fin Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'...
|
6
|
5
|
health-check.yml
|
13496
|
-2
|
259
|
refs/heads/main
|
9d69e1960ec649a49c0c6f307c0fc197f47ee4c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"40dae5944f158653af8288a3f38b6c97e8ce9f06","after":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/40dae5944f158653af8288a3f38b6c97e8ce9f06...9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","commits":[{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},{"id":"0152aae7b8ff9440c5f4e7aad113420208e6c304","message":"Merge remote-tracking branch 'origin/codex/design-scalable-autopilot-os-architecture'\n\n# Conflicts:\n#\te2e/agents/playwright-agent/index.ts\n#\te2e/agents/playwright-agent/inspectors/index.ts\n#\te2e/agents/playwright-agent/reporters/backend-reporter.ts\n#\te2e/package.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0152aae7b8ff9440c5f4e7aad113420208e6c304","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:05+08:00","added":[],"removed":[],"modified":[]},{"id":"e2587fae3d50e6ef7c30450199abd1bfc910a016","message":"test(finance): add finance mainline smoke and harden invoice detail formatting","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e2587fae3d50e6ef7c30450199abd1bfc910a016","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T13:47:05+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["frontend/src/views/invoices/Detail.vue"]},{"id":"803578ebec2d6f4c0d00335c1f5c61067112d923","message":"feat(e2e): add playwright agent mvp skeleton","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/803578ebec2d6f4c0d00335c1f5c61067112d923","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-19T19:55:36+08:00","added":["e2e/agents/playwright-agent/README.md","e2e/agents/playwright-agent/__tests__/playwright-agent.unit.test.ts","e2e/agents/playwright-agent/artifacts/artifact-writer.ts","e2e/agents/playwright-agent/auth/auth-provider.ts","e2e/agents/playwright-agent/auth/storage-state-auth.ts","e2e/agents/playwright-agent/constants/diagnosis.ts","e2e/agents/playwright-agent/constants/status.ts","e2e/agents/playwright-agent/constants/timeouts.ts","e2e/agents/playwright-agent/core/action-runner.ts","e2e/agents/playwright-agent/core/browser-manager.ts","e2e/agents/playwright-agent/core/execution-engine.ts","e2e/agents/playwright-agent/core/retry-engine.ts","e2e/agents/playwright-agent/core/session-factory.ts","e2e/agents/playwright-agent/index.ts","e2e/agents/playwright-agent/inspectors/base-inspector.ts","e2e/agents/playwright-agent/inspectors/booking-inspector.ts","e2e/agents/playwright-agent/inspectors/dashboard-inspector.ts","e2e/agents/playwright-agent/inspectors/index.ts","e2e/agents/playwright-agent/inspectors/payment-inspector.ts","e2e/agents/playwright-agent/observers/console-observer.ts","e2e/agents/playwright-agent/observers/network-observer.ts","e2e/agents/playwright-agent/observers/page-probe.ts","e2e/agents/playwright-agent/reporters/backend-reporter.ts","e2e/agents/playwright-agent/reporters/json-reporter.ts","e2e/agents/playwright-agent/resolvers/selector-resolver.ts","e2e/agents/playwright-agent/types/diagnosis.ts","e2e/agents/playwright-agent/types/execution-plan.ts","e2e/agents/playwright-agent/types/execution-result.ts","e2e/agents/playwright-agent/types/execution-step.ts","e2e/agents/playwright-agent/types/inspector.ts","e2e/agents/playwright-agent/types/runtime.ts"],"removed":[],"modified":["e2e/package.json"]}],"total_commits":0,"head_commit":{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},"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":5204515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T09:40:13+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
|
1776000950
|
1776000951
|
0
|
1776000950
|
1776000951
|
|
|
0
|
Edit
Delete
|
|
13574
|
Merge remote-tracking branch 'origin/codex/fin Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'...
|
6
|
5
|
health-check.yml
|
13497
|
-2
|
259
|
refs/heads/main
|
9d69e1960ec649a49c0c6f307c0fc197f47ee4c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"40dae5944f158653af8288a3f38b6c97e8ce9f06","after":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/40dae5944f158653af8288a3f38b6c97e8ce9f06...9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","commits":[{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},{"id":"0152aae7b8ff9440c5f4e7aad113420208e6c304","message":"Merge remote-tracking branch 'origin/codex/design-scalable-autopilot-os-architecture'\n\n# Conflicts:\n#\te2e/agents/playwright-agent/index.ts\n#\te2e/agents/playwright-agent/inspectors/index.ts\n#\te2e/agents/playwright-agent/reporters/backend-reporter.ts\n#\te2e/package.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0152aae7b8ff9440c5f4e7aad113420208e6c304","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:05+08:00","added":[],"removed":[],"modified":[]},{"id":"e2587fae3d50e6ef7c30450199abd1bfc910a016","message":"test(finance): add finance mainline smoke and harden invoice detail formatting","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e2587fae3d50e6ef7c30450199abd1bfc910a016","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-31T13:47:05+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":["frontend/src/views/invoices/Detail.vue"]},{"id":"803578ebec2d6f4c0d00335c1f5c61067112d923","message":"feat(e2e): add playwright agent mvp skeleton","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/803578ebec2d6f4c0d00335c1f5c61067112d923","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-19T19:55:36+08:00","added":["e2e/agents/playwright-agent/README.md","e2e/agents/playwright-agent/__tests__/playwright-agent.unit.test.ts","e2e/agents/playwright-agent/artifacts/artifact-writer.ts","e2e/agents/playwright-agent/auth/auth-provider.ts","e2e/agents/playwright-agent/auth/storage-state-auth.ts","e2e/agents/playwright-agent/constants/diagnosis.ts","e2e/agents/playwright-agent/constants/status.ts","e2e/agents/playwright-agent/constants/timeouts.ts","e2e/agents/playwright-agent/core/action-runner.ts","e2e/agents/playwright-agent/core/browser-manager.ts","e2e/agents/playwright-agent/core/execution-engine.ts","e2e/agents/playwright-agent/core/retry-engine.ts","e2e/agents/playwright-agent/core/session-factory.ts","e2e/agents/playwright-agent/index.ts","e2e/agents/playwright-agent/inspectors/base-inspector.ts","e2e/agents/playwright-agent/inspectors/booking-inspector.ts","e2e/agents/playwright-agent/inspectors/dashboard-inspector.ts","e2e/agents/playwright-agent/inspectors/index.ts","e2e/agents/playwright-agent/inspectors/payment-inspector.ts","e2e/agents/playwright-agent/observers/console-observer.ts","e2e/agents/playwright-agent/observers/network-observer.ts","e2e/agents/playwright-agent/observers/page-probe.ts","e2e/agents/playwright-agent/reporters/backend-reporter.ts","e2e/agents/playwright-agent/reporters/json-reporter.ts","e2e/agents/playwright-agent/resolvers/selector-resolver.ts","e2e/agents/playwright-agent/types/diagnosis.ts","e2e/agents/playwright-agent/types/execution-plan.ts","e2e/agents/playwright-agent/types/execution-result.ts","e2e/agents/playwright-agent/types/execution-step.ts","e2e/agents/playwright-agent/types/inspector.ts","e2e/agents/playwright-agent/types/runtime.ts"],"removed":[],"modified":["e2e/package.json"]}],"total_commits":0,"head_commit":{"id":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","message":"Merge remote-tracking branch 'origin/codex/finance-smoke-sync-20260331'\n\n# Conflicts:\n#\tfrontend/src/views/invoices/Detail.vue\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-04-03T09:41:29+08:00","added":["e2e/tests/auth/finance-mainline-flow-smoke.spec.ts"],"removed":[],"modified":[]},"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":5204515,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T09:40:13+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
|
1776001250
|
1776001251
|
0
|
1776001250
|
1776001251
|
|
|
0
|
Edit
Delete
|
|
13575
|
feat: 更新项目配置和脚本
|
6
|
5
|
ci.yml
|
13498
|
5
|
0
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
12
|
1776001252
|
1776001294
|
0
|
1776001251
|
1776007228
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
13576
|
feat: 更新项目配置和脚本
|
6
|
5
|
e2e-tests.yml
|
13499
|
5
|
0
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776001294
|
1776007179
|
0
|
1776001251
|
1776007270
|
|
|
0
|
Edit
Delete
|
|
13577
|
feat: 更新项目配置和脚本
|
6
|
5
|
test-pipeline.yml
|
13500
|
5
|
0
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007180
|
1776007225
|
0
|
1776001252
|
1776007337
|
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
|
|
13578
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13501
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007229
|
1776007230
|
0
|
1776001550
|
1776007230
|
|
|
0
|
Edit
Delete
|
|
13579
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13502
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007231
|
1776007232
|
0
|
1776001910
|
1776007232
|
|
|
0
|
Edit
Delete
|
|
13580
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13503
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007233
|
1776007234
|
0
|
1776002150
|
1776007234
|
|
|
0
|
Edit
Delete
|
|
13581
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13504
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007235
|
1776007236
|
0
|
1776002450
|
1776007236
|
|
|
0
|
Edit
Delete
|
|
13582
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13505
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007237
|
1776007238
|
0
|
1776002750
|
1776007238
|
|
|
0
|
Edit
Delete
|
|
13583
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13506
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007239
|
1776007240
|
0
|
1776003050
|
1776007240
|
|
|
0
|
Edit
Delete
|
|
13584
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13507
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007241
|
1776007242
|
0
|
1776003350
|
1776007242
|
|
|
0
|
Edit
Delete
|
|
13585
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13508
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007243
|
1776007244
|
0
|
1776003650
|
1776007244
|
|
|
0
|
Edit
Delete
|
|
13586
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13509
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007245
|
1776007246
|
0
|
1776003950
|
1776007246
|
|
|
0
|
Edit
Delete
|
|
13587
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13510
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007247
|
1776007248
|
0
|
1776004250
|
1776007248
|
|
|
0
|
Edit
Delete
|
|
13588
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13511
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007249
|
1776007250
|
0
|
1776004550
|
1776007250
|
|
|
0
|
Edit
Delete
|
|
13589
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13512
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007251
|
1776007252
|
0
|
1776004850
|
1776007252
|
|
|
0
|
Edit
Delete
|
|
13590
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13513
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007253
|
1776007254
|
0
|
1776005150
|
1776007254
|
|
|
0
|
Edit
Delete
|
|
13591
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13514
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007255
|
1776007256
|
0
|
1776005450
|
1776007256
|
|
|
0
|
Edit
Delete
|
|
13592
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13515
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007257
|
1776007258
|
0
|
1776005750
|
1776007258
|
|
|
0
|
Edit
Delete
|
|
13593
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13516
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007259
|
1776007260
|
0
|
1776006050
|
1776007260
|
|
|
0
|
Edit
Delete
|
|
13594
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13517
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007261
|
1776007262
|
0
|
1776006350
|
1776007262
|
|
|
0
|
Edit
Delete
|
|
13595
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13518
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007263
|
1776007264
|
0
|
1776006650
|
1776007264
|
|
|
0
|
Edit
Delete
|
|
13596
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13519
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007265
|
1776007266
|
0
|
1776006950
|
1776007266
|
|
|
0
|
Edit
Delete
|
|
13599
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13522
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007288
|
1776007288
|
0
|
1776007250
|
1776007288
|
|
|
0
|
Edit
Delete
|
|
13603
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13526
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007551
|
1776007552
|
0
|
1776007550
|
1776007552
|
|
|
0
|
Edit
Delete
|
|
13604
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13527
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776007851
|
1776007852
|
0
|
1776007850
|
1776007852
|
|
|
0
|
Edit
Delete
|
|
13605
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13528
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776008151
|
1776008152
|
0
|
1776008150
|
1776008152
|
|
|
0
|
Edit
Delete
|
|
13606
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13529
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776008451
|
1776008452
|
0
|
1776008450
|
1776008452
|
|
|
0
|
Edit
Delete
|
|
13607
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13530
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776008751
|
1776008752
|
0
|
1776008750
|
1776008752
|
|
|
0
|
Edit
Delete
|
|
13608
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13531
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776009051
|
1776009052
|
0
|
1776009050
|
1776009052
|
|
|
0
|
Edit
Delete
|
|
13609
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13532
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776009351
|
1776009352
|
0
|
1776009350
|
1776009352
|
|
|
0
|
Edit
Delete
|
|
13610
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13533
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776009652
|
1776009653
|
0
|
1776009650
|
1776009653
|
|
|
0
|
Edit
Delete
|
|
13611
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13534
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
2
|
4
|
1776009958
|
1776010790
|
0
|
1776009950
|
1776010790
|
|
|
0
|
Edit
Delete
|
|
13612
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13535
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776010251
|
1776010252
|
0
|
1776010250
|
1776010252
|
|
|
0
|
Edit
Delete
|
|
13613
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13536
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776010551
|
1776010551
|
0
|
1776010550
|
1776010551
|
|
|
0
|
Edit
Delete
|
|
13614
|
feat: 更新项目配置和脚本
|
6
|
5
|
health-check.yml
|
13537
|
-2
|
262
|
refs/heads/main
|
2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9d69e1960ec649a49c0c6f307c0fc197f47ee4c4","after":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/9d69e1960ec649a49c0c6f307c0fc197f47ee4c4...2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","commits":[{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},{"id":"83f8b781d7305c9badf23edd7d8523a626a5a18c","message":"Improve governance guidance and audit coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/83f8b781d7305c9badf23edd7d8523a626a5a18c","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T12:31:56+08:00","added":["backend/scripts/generate-phantom-modules.ts","backend/src/modules/abm-marketing/abm-marketing.controller.ts","backend/src/modules/abm-marketing/abm-marketing.docs.ts","backend/src/modules/abm-marketing/abm-marketing.routes.ts","backend/src/modules/abm-marketing/abm-marketing.schema.ts","backend/src/modules/abm-marketing/abm-marketing.service.ts","backend/src/modules/ad-analytics/ad-analytics.controller.ts","backend/src/modules/ad-analytics/ad-analytics.docs.ts","backend/src/modules/ad-analytics/ad-analytics.routes.ts","backend/src/modules/ad-analytics/ad-analytics.schema.ts","backend/src/modules/ad-analytics/ad-analytics.service.ts","backend/src/modules/attribution-models/attribution-models.controller.ts","backend/src/modules/attribution-models/attribution-models.docs.ts","backend/src/modules/attribution-models/attribution-models.routes.ts","backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/attribution-models/attribution-models.service.ts","backend/src/modules/attribution-reports/attribution-reports.controller.ts","backend/src/modules/attribution-reports/attribution-reports.docs.ts","backend/src/modules/attribution-reports/attribution-reports.routes.ts","backend/src/modules/attribution-reports/attribution-reports.schema.ts","backend/src/modules/attribution-reports/attribution-reports.service.ts","backend/src/modules/channel-integrations/channel-integrations.controller.ts","backend/src/modules/channel-integrations/channel-integrations.docs.ts","backend/src/modules/channel-integrations/channel-integrations.routes.ts","backend/src/modules/channel-integrations/channel-integrations.schema.ts","backend/src/modules/channel-integrations/channel-integrations.service.ts","backend/src/modules/customer-segmentation/customer-segmentation.controller.ts","backend/src/modules/customer-segmentation/customer-segmentation.docs.ts","backend/src/modules/customer-segmentation/customer-segmentation.routes.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.service.ts","backend/src/modules/lead-assignment/lead-assignment.controller.ts","backend/src/modules/lead-assignment/lead-assignment.docs.ts","backend/src/modules/lead-assignment/lead-assignment.routes.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-assignment/lead-assignment.service.ts","backend/src/modules/lead-scoring/lead-scoring.controller.ts","backend/src/modules/lead-scoring/lead-scoring.docs.ts","backend/src/modules/lead-scoring/lead-scoring.routes.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/local-events/local-events.controller.ts","backend/src/modules/local-events/local-events.docs.ts","backend/src/modules/local-events/local-events.routes.ts","backend/src/modules/local-events/local-events.schema.ts","backend/src/modules/local-events/local-events.service.ts","backend/src/modules/local-promotion/local-promotion.controller.ts","backend/src/modules/local-promotion/local-promotion.docs.ts","backend/src/modules/local-promotion/local-promotion.routes.ts","backend/src/modules/local-promotion/local-promotion.schema.ts","backend/src/modules/local-promotion/local-promotion.service.ts","backend/src/modules/member-benefits/member-benefits.controller.ts","backend/src/modules/member-benefits/member-benefits.docs.ts","backend/src/modules/member-benefits/member-benefits.routes.ts","backend/src/modules/member-benefits/member-benefits.schema.ts","backend/src/modules/member-benefits/member-benefits.service.ts","backend/src/modules/member-levels/member-levels.controller.ts","backend/src/modules/member-levels/member-levels.docs.ts","backend/src/modules/member-levels/member-levels.routes.ts","backend/src/modules/member-levels/member-levels.schema.ts","backend/src/modules/member-levels/member-levels.service.ts","backend/src/modules/member-points/member-points.controller.ts","backend/src/modules/member-points/member-points.docs.ts","backend/src/modules/member-points/member-points.routes.ts","backend/src/modules/member-points/member-points.schema.ts","backend/src/modules/member-points/member-points.service.ts","backend/src/modules/members/members.controller.ts","backend/src/modules/members/members.docs.ts","backend/src/modules/members/members.routes.ts","backend/src/modules/members/members.schema.ts","backend/src/modules/members/members.service.ts","backend/src/modules/notification-configs/notification-configs.controller.ts","backend/src/modules/notification-configs/notification-configs.docs.ts","backend/src/modules/notification-configs/notification-configs.routes.ts","backend/src/modules/notification-configs/notification-configs.schema.ts","backend/src/modules/notification-configs/notification-configs.service.ts","backend/src/modules/product-categories/product-categories.controller.ts","backend/src/modules/product-categories/product-categories.docs.ts","backend/src/modules/product-categories/product-categories.routes.ts","backend/src/modules/product-categories/product-categories.schema.ts","backend/src/modules/product-categories/product-categories.service.ts","backend/src/modules/qr-codes/qr-codes.controller.ts","backend/src/modules/qr-codes/qr-codes.docs.ts","backend/src/modules/qr-codes/qr-codes.routes.ts","backend/src/modules/qr-codes/qr-codes.schema.ts","backend/src/modules/qr-codes/qr-codes.service.ts","backend/src/modules/social-matrix/social-matrix.controller.ts","backend/src/modules/social-matrix/social-matrix.docs.ts","backend/src/modules/social-matrix/social-matrix.routes.ts","backend/src/modules/social-matrix/social-matrix.schema.ts","backend/src/modules/social-matrix/social-matrix.service.ts","backend/src/modules/store-configs/store-configs.controller.ts","backend/src/modules/store-configs/store-configs.docs.ts","backend/src/modules/store-configs/store-configs.routes.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/store-configs/store-configs.service.ts","backend/src/modules/supplier-center/supplier-center.controller.ts","backend/src/modules/supplier-center/supplier-center.docs.ts","backend/src/modules/supplier-center/supplier-center.routes.ts","backend/src/modules/supplier-center/supplier-center.schema.ts","backend/src/modules/supplier-center/supplier-center.service.ts","backend/src/modules/utm-tracking/utm-tracking.controller.ts","backend/src/modules/utm-tracking/utm-tracking.docs.ts","backend/src/modules/utm-tracking/utm-tracking.routes.ts","backend/src/modules/utm-tracking/utm-tracking.schema.ts","backend/src/modules/utm-tracking/utm-tracking.service.ts","backend/src/modules/video-analytics/video-analytics.controller.ts","backend/src/modules/video-analytics/video-analytics.docs.ts","backend/src/modules/video-analytics/video-analytics.routes.ts","backend/src/modules/video-analytics/video-analytics.schema.ts","backend/src/modules/video-analytics/video-analytics.service.ts","backend/src/modules/video-content/video-content.controller.ts","backend/src/modules/video-content/video-content.docs.ts","backend/src/modules/video-content/video-content.routes.ts","backend/src/modules/video-content/video-content.schema.ts","backend/src/modules/video-content/video-content.service.ts","backend/src/modules/video-publishing/video-publishing.controller.ts","backend/src/modules/video-publishing/video-publishing.docs.ts","backend/src/modules/video-publishing/video-publishing.routes.ts","backend/src/modules/video-publishing/video-publishing.schema.ts","backend/src/modules/video-publishing/video-publishing.service.ts","backend/src/modules/workflow-designer/workflow-designer.controller.ts","backend/src/modules/workflow-designer/workflow-designer.docs.ts","backend/src/modules/workflow-designer/workflow-designer.routes.ts","backend/src/modules/workflow-designer/workflow-designer.schema.ts","backend/src/modules/workflow-designer/workflow-designer.service.ts"],"removed":[],"modified":["backend/prisma/schema/customers.prisma","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/system.prisma","backend/prisma/schema/workflow.prisma","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.service.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/tickets/ticket.service.ts","backend/src/routes/register-domain-routes.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","scripts/acceptance/api_acceptance.mjs","scripts/e2e-health-check.sh","scripts/harness/module-manifests.json","scripts/healthcheck.sh","scripts/post-deploy-verify.sh","scripts/pre-deploy-check.sh","scripts/status.sh"]},{"id":"5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","message":"Refactor governance baselines and remove obsolete module code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5d02d3ff4d71ee63ba8c3bd03fe70b152daa2c33","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T17:16:05+08:00","added":["e2e/helpers/create-catalog.ts","e2e/playwright-report/data/1c59ef9c594dee5d50479214a3d23db8b2206c59.png","e2e/playwright-report/data/80392828a7bc35bcb324bde0306238e4448f4c7f.md","e2e/test-results/.last-run.json","e2e/test-results/create-verify-all-report.json","e2e/tests/create-forms/create-verify-all.spec.ts","shared/create-route-catalog.ts"],"removed":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json"],"modified":["backend/src/modules/rma/rma.service.ts","e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/router/__tests__/create-route-catalog.test.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/approval-configs/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"1b6a3f7493a79f95a2db09aff9c57350ae135c1b","message":"Harden create form coverage and fix broken create flows\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1b6a3f7493a79f95a2db09aff9c57350ae135c1b","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T13:18:09+08:00","added":["e2e/playwright-report/data/25cbc99c63faba33dad311c373b5dc24591abec3.png","e2e/playwright-report/data/b8fdc6a93eb8f0836725688053076f4ff601006f.md","e2e/test-results/create-ui-all-report.json","e2e/tests/create-forms/create-ui-fill-submit.spec.ts","frontend/src/router/__tests__/create-route-catalog.test.ts"],"removed":[],"modified":["e2e/.auth/admin.json","e2e/package.json","e2e/playwright-report/index.html","e2e/tests/create-forms/create-ui-all.spec.ts","frontend/src/api/modules/ad-reports.ts","frontend/src/api/modules/alliance-referrals.ts","frontend/src/api/modules/approval-templates.ts","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/ad-reports/Form.vue","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/alliance-campaigns/Form.vue","frontend/src/views/alliance-coupons/Form.vue","frontend/src/views/alliance-packages/Form.vue","frontend/src/views/alliance-products/Form.vue","frontend/src/views/alliance-referrals/Form.vue","frontend/src/views/approval-templates/Form.vue","frontend/src/views/assets/Form.vue"]},{"id":"e224c0ecaa34df97ef5acd412d614a7362bfa6c3","message":"Harden harness reporting and add regression tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e224c0ecaa34df97ef5acd412d614a7362bfa6c3","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-11T08:45:25+08:00","added":["e2e/tests/create-forms/create-ui-all.spec.ts","scripts/harness/finding-id.ts","scripts/harness/report.test.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-all-report.json"],"modified":["e2e/.auth/admin.json","e2e/helpers/create-payloads.ts","e2e/playwright-report/index.html","e2e/tests/create-forms/create-all.spec.ts","package.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/harness/cli.ts","scripts/harness/doctor.ts","scripts/harness/fix.ts","scripts/harness/orchestrator.ts","scripts/harness/reflect.ts","scripts/harness/report.ts","scripts/harness/types.ts"]}],"total_commits":0,"head_commit":{"id":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","message":"feat: 更新项目配置和脚本\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-12T21:30:41+08:00","added":[],"removed":[],"modified":["backend/Dockerfile","docker-compose.prod.yml","docker-compose.yml","e2e/.auth/admin.json","e2e/test-results/create-verify-all-report.json","frontend/Dockerfile","frontend/package.json","frontend/vite.config.ts","scripts/post-deploy-verify.sh","scripts/restart-dev.sh","scripts/start-all.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204609,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-03T10:01:27+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
|
1776010851
|
1776010851
|
0
|
1776010850
|
1776010851
|
|
|
0
|
Edit
Delete
|
|
13615
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
ci.yml
|
13538
|
5
|
0
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
12
|
1776011087
|
1776011123
|
0
|
1776011085
|
1776011734
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
13616
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
e2e-tests.yml
|
13539
|
5
|
0
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1776011124
|
1776011670
|
0
|
1776011086
|
1776011800
|
|
|
0
|
Edit
Delete
|
|
13617
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
test-pipeline.yml
|
13540
|
5
|
0
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1776011671
|
1776011732
|
0
|
1776011086
|
1776011896
|
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
|
|
13618
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13541
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1776011735
|
1776011736
|
0
|
1776011150
|
1776011736
|
|
|
0
|
Edit
Delete
|
|
13619
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13542
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1776011737
|
1776011738
|
0
|
1776011450
|
1776011738
|
|
|
0
|
Edit
Delete
|
|
13622
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13545
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1776011813
|
1776011814
|
0
|
1776011750
|
1776011814
|
|
|
0
|
Edit
Delete
|
|
13626
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13549
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1776012050
|
1776012051
|
0
|
1776012050
|
1776012051
|
|
|
0
|
Edit
Delete
|
|
13627
|
feat: E2E 表单测试框架 + P0/P1/P2 治理完成
|
6
|
5
|
health-check.yml
|
13550
|
-2
|
265
|
refs/heads/main
|
98cc8da660b8d4dba9887432490471d976c03f5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0","after":"98cc8da660b8d4dba9887432490471d976c03f5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2e3188c85a6cfc38ac7d3643b1cbbfc2e3e850d0...98cc8da660b8d4dba9887432490471d976c03f5f","commits":[{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"98cc8da660b8d4dba9887432490471d976c03f5f","message":"feat: E2E 表单测试框架 + P0/P1/P2 治理完成\n\nE2E 表单测试 (新):\n- 新增 4 个测试文件,21 个测试用例,983 行代码\n- helpers/form-test-helpers.ts: 12 个通用测试工具函数\n- 覆盖 Lead-to-Cash/营销/审批/财务 4 大业务域\n- 测试矩阵: F01创建/F02验证错误/F03编辑回填/F04草稿恢复\n\nP0 治理完成:\n- ES 安全配置: xpack.security.enabled=true + 密码认证\n- Dockerfile.dev: 前后端统一 pnpm + frozen-lockfile\n- customers/Index.vue: reactive\u003cany\u003e → CustomerQueryParams 接口\n- CLAUDE.md 红线 9: 列表页必须使用 useListPage\n- useListPage 覆盖: 13 → 23/208 (11.1%),新增 10 个页面\n\nP1 治理完成:\n- Prisma 升级: 5.7.0 → 5.22.0,prismaSchemaFolder 启用\n- schema 拆分: 27 个子文件,prisma validate 通过\n- 大组件拆分: sms-marketing 1774 → 840 行 (↓53%)\n - SmsTemplateManager.vue (514 行)\n - SmsCampaignManager.vue (598 行)\n- 测试覆盖率: 后端 65→70%, 前端 60→65%\n- Dockerfile prune: pnpm prune --prod --no-optional\n\nP2 治理完成:\n- Kafka HA: Makefile deploy-ha 命令\n- SBOM: CI anchore/sbom-action 集成\n- ECharts 按需引入: echarts/core\n- 虚拟列表方案: @tanstack/vue-virtual 实施计划\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/98cc8da660b8d4dba9887432490471d976c03f5f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T00:24:31+08:00","added":["e2e/helpers/form-test-helpers.ts","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/views/sms-marketing/components/SmsCampaignManager.vue","frontend/src/views/sms-marketing/components/SmsTemplateManager.vue","reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"],"removed":["e2e/test-results/create-verify-all-report.json"],"modified":[".env.production.example",".github/workflows/ci.yml","CLAUDE.md","Makefile","backend/Dockerfile","backend/Dockerfile.dev","backend/package.json","backend/prisma/schema.prisma","backend/src/config/env.ts","backend/vitest.config.ts","backend/vitest.workspace.ts","docker-compose.prod.yml","docs/governance/baseline-and-experience.md","e2e/test-results/.last-run.json","frontend/Dockerfile.dev","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/crm-activities/Index.vue","frontend/src/views/customers/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/sms-marketing/Index.vue","frontend/vitest.config.ts","package.json","pnpm-lock.yaml","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/report.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5211826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-12T21:40:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1776012350
|
1776012351
|
0
|
1776012350
|
1776012351
|
|
|
0
|
Edit
Delete
|